0

誰でもこれについて私を助けることができます. MySql データベースからの結果を表示するには、学校、クラス、科目、および試験を選択する必要があります。しかし、すべてのクラスまたはすべての試験をリストすることはあまり実用的ではないため、最初の選択ボックスでいくつかの学校を選択すると、選択した学校のクラスのみが 2 番目の選択ボックスに表示される別の機能を実行したいと考えています。

私のコードは次のとおりです。

    <div id="allselects">
<form action="viewing.php" method="post" name="filt">
<div class="multsarrange">
<h1 class="choosetext" >Chose Schools</h1>
<select class="multipleselect"  name="schools[]" size="8" multiple="multiple" id="shkll">
  <?php

                        $sql = "SELECT * FROM schools ";
                        $scc=mysql_query($sql);
                        while ($db_f = mysql_fetch_assoc($scc)) {
                        $schcd=$db_f['schoolcode'];
                        $schc=$db_f['schoolname'];
                        echo "<option  value=$schcd >$schc</option>";
                            } 
                        ?>
  </select>
</div>
<div class="multsarrange" id="clasaajax">
<h1 class="choosetext" >Chose an Classes</h1>
<select class="multipleselect" name="classes[]" size="8" multiple="multiple" ">
<?php

                        $c = "SELECT * FROM classes ";
                        $cl=mysql_query($c);
                        while ($db_f = mysql_fetch_assoc($cl)) {
                        $clsc=$db_f['schoolID'];
                        $claid=$db_f['classID'];
                        $clay=$db_f['year'];
                        $clanm=$db_f['className'];
                        $name=schoolidton($clsc)."  ".$clay." ".$clanm;
                        echo "<option  value=$claid >$name</option>";
    } 
?>
</select>
</div>
<div class="multsarrange">
<h1 class="choosetext" >Chose Subjects</h1>
<select class="multipleselect" name="subjects[]" size="8" multiple="multiple">
<?php

                        $sb = "SELECT * FROM subjects ";
                        $sbi=mysql_query($sb);
                        while ($db_f = mysql_fetch_assoc($sbi)) {
                        $sbnm=$db_f['subjectName'];
                        $sbid=$db_f['subjectID'];
                        echo "<option  value=$sbid >$sbnm</option>";
                            } 
                        ?>
</select>
</div>
<div class="multsarrange">
<h1 class="choosetext" >Chose Exams</h1>
<select class="multipleselect" name="exams[]" size="8" multiple="multiple">
<?php

                        $e = "SELECT * FROM exams ";
                        $ex=mysql_query($e);
                        while ($db_f = mysql_fetch_assoc($ex)) {
                        $id=$db_f['examID'];
                        $sub=$db_f['subjectID'];
                        $desc=$db_f['description'];
                        $year=$db_f['year'];
                        $data=$db_f['data'];

                        $exnam=subidton($sub)." - ".$year." - ".$desc." - ".$data;
                        echo "<option  value=$id >$exnam</option>";
                            } 
                        ?>
</select>
</div>
<div id="longsubmit">
</br></br>
<input name="submit" type="submit" value="View" />
</div>
</form>
</div>
4

3 に答える 3

1

あなたがする必要があるのは次のとおりです:

  1. selectイベントをリッスンするためににイベントリスナーを設定しますchange-ここを参照してください
  2. 選択した値をPHPスクリプトに送信して、変更イベントを処理します-ここを参照してください
  3. PHPを使用して、選択した値を取得し、必要に応じてデータベースにクエリを実行します(すでにそのビットを実行しています)
  4. 新しい選択リストを作成するだけの場合は、関連するHTML出力またはJSONまたはXMLを送信します-これは単純なエコーです
  5. JavaScriptを使用して出力を画面に書き込みます-これは、PHP関数からの応答に基づいて新しい要素を作成するか、HTML応答を挿入します

このプロセスには多くのことがあります-それぞれに複数のオプションがあります-私はあなたがそれぞれに取り組み、行き詰まった場合は特定の質問に戻ってくることをお勧めします

于 2012-04-24T10:07:03.493 に答える
0

abc.phpでajaxを使用して学校の値またはIDを取得し、必要なタグを作成して、結果をhtml関数get_options(table、id_field、name_field、where_field、field_value、select_id、edit_id){の関連IDに返します。

$('#'+select_id).html('<option>Loading...</option>');
$.ajax({
        type: "POST", url: "abc.php", data: "&table="+table+"&id_field="+id_field+"&name_field="+name_field+"&where_field="+where_field+"&field_value="+field_value+ "&edit_id=" + edit_id +"&get_option=1",
        complete: function(data){
             //alert(data.responseText);
                 $('#'+select_id).html(data.responseText);
        }
    });

}

于 2012-04-24T10:06:02.463 に答える
0

これを実現するには、AJAXを使用する必要があります。

これをチェックして

http://www.plus2net.com/php_tutorial/ajax_drop_down_list.php

于 2012-04-24T10:06:15.907 に答える