0

任何人都可以帮我解决这个问题。为了显示来自 MySql 数据库的结果,我必须选择学校、班级、科目和考试。但是列出所有课程或所有考试并不是很实用,所以我想做另一个功能,当我在第一个选择框中选择一些学校时,它会在第二个选择框中只显示所选学校的课程。

我的代码是:

    <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 输出或 JS​​ON 或 XML - 这是一个简单的回显
  5. 使用 JavaScript 将输出写入屏幕 - 这是基于 PHP 函数的回复创建新元素或插入 HTML 响应

在这个过程中有很多事情——每一个都有多个选项——我建议你尝试解决每一个问题,如果你遇到困难再回来提出具体问题

于 2012-04-24T10:07:03.493 回答
0

在 abc.php 上使用 ajax 获取学校的值或 id 并制作您需要的标签并将结果返回到 html 函数的相关 id get_options(table,id_field,name_field,where_field,field_value,select_id,edit_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 回答