sql >> データベース >  >> RDS >> Mysql

ページを読み込んだ後、何も表示されない

    代わりに

    <body onload=showUser(str="ALL")>
    

    使用する必要があります

    <body>
    <!-- all your html goes here -->
    </body>
    <script>
        showUser();
    </script>
    

    body onloadの場合 drop_1をトリガーします およびtire_two は作成されず、scruptは例外をスローするだけです。

    編集:

    最初に読み込むとき、またはq=ALLの場合 、2番目のパラメータpを送信する必要はありません 。だから変更

    if (str == "" || str1 == "") {
        document.getElementById("txtHint").innerHTML = "";
        return;
    }
    

    宛先

    if (str == "" || (str != "ALL" && str1 == "")) {
        document.getElementById("txtHint").innerHTML = "";
        return;
    }
    

    編集2: 変更されたCombobox.php

    <script> // AJAX Implementation
    function showUser() {
        str = document.getElementById("drop_1").value;
        str1 = document.getElementById("tier_two").value;
        if (str == "" || (str != "ALL" && str1 == "")) {
            document.getElementById("txtHint").innerHTML = "";
            return;
        }
        if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else { // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        xmlhttp.onreadystatechange = function () {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                document.getElementById("txtHint").innerHTML = xmlhttp.responseText;
            }
        }
        xmlhttp.open("GET", "getuser.php?q=" + str + "&p=" + str1, true);
        xmlhttp.send();
    }
    </script>
    <body>
    
    <?php include('func.php'); ?>
    <select name="drop_1" id="drop_1" onchange="showUser()" style="overflow:scroll;width:100px;">
            <option value="ALL" selected='ALL'>ALL</option>
            <?php getTierOne(); ?>
    </select>
    <!-- your other html... -->
    </body>
    
    <script>
        showUser();
    </script>
    

    編集3:

    これは野蛮な推測であり、これがあなたが望むものかもしれません

    func.phpの変更

    if(isset($_GET['func']) && $_GET['func'] == "drop_1") {
       drop_1($_GET['drop_var']); 
    }else{
       drop_1(''); // when you call the func.php first time $_GET['drop_var'] is not set so call with blank drop_var
    }
    
    function drop_1($drop_var)
    {
        $mysqli = new mysqli("localhost", "root", "", "app");
        $query = "SELECT * FROM app WHERE app_cn='$drop_var' GROUP BY app_plan_no ORDER BY app_plan_no";
        if (empty($drop_var)){
            //if the drop_var is empty select all records
            $query = "SELECT * FROM app GROUP BY app_plan_no ORDER BY app_plan_no";
        }
        $results = $mysqli->query($query);
    
        echo '<select name="tier_two" id="tier_two" onchange="showUser()">
              <option value=" " disabled="disabled" selected="selected">Choose one</option>';
    
              while($drop_2 = $results->fetch_assoc())
                {
                if($drop_2['app_plan_no'] != '')
                {
                  echo '<option value="'.$drop_2['app_plan_no'].'">'.$drop_2['app_plan_no'].'</option>';
                }
                }
        echo '</select> ';
    }
    


    1. PHPからMySQLクエリの実行時間を取得するにはどうすればよいですか?

    2. MySQL:GROUP BYを使用する場合、空のフィールドをゼロで埋めます

    3. 結果がない場合でも、その間のすべての日付を表示する

    4. 検証とデータがデータベーステーブルに追加されます