Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 相关选择输入_Php_Javascript_Html_Ajax - Fatal编程技术网

Php 相关选择输入

Php 相关选择输入,php,javascript,html,ajax,Php,Javascript,Html,Ajax,有人能帮我吗。为了显示MySql数据库中的结果,我必须选择学校、班级、科目和考试。但是列出所有的班级或所有的考试不是很实用,所以我想做另一个功能,当我在第一个选择框中选择一些学校时,它在第二个选择框中只显示所选学校的班级 我的代码是: <div id="allselects"> <form action="viewing.php" method="post" name="filt"> <div class="multsarrange"> <h1

有人能帮我吗。为了显示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>

在abc.php上使用ajax获取学校的值或id,制作所需的标记,并将结果返回到html的相关id 函数get_options表、id_字段、name_字段、where_字段、field_值、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);
        }
    });

}为了实现这一点,您必须使用AJAX

检查这个


您需要执行以下操作:

在选择上设置事件侦听器以侦听更改事件- 通过将所选值发送到PHP脚本来处理更改事件- 使用PHP获取所选的值并根据需要查询数据库,您已经完成了这项工作 如果您只是创建一个新的选择列表,请发送相关的HTML输出或JSON或XML—这是一个简单的回音 使用JavaScript将输出写入屏幕-这是基于PHP函数的回复创建新元素或插入HTML响应
在这个过程中有很多事情-每个都有多个选项-我建议你尝试解决每一个问题,如果你陷入困境,可以带着具体的问题回来

我已经完成了这个代码,当我选择一个学校时,它对一个值很有效。该学校的班级列在第六个选择框中,但我无法修改它以使用多个选择值。这是我使用的函数AjaxFunctioncat_id{var httpxml;try{//Firefox,Opera 8.0+,Safari httpxml=new XMLHttpRequest;}catch e{//Internet Explorer try{httpxml=new ActiveXObjectMsxml2.XMLHTTP;}catch e{try{httpxml=new ActiveXObjectMicrosoft.XMLHTTP;}catch e{您的浏览器不支持AJAX!;返回false;}}}}}函数状态检查{ifhttpxml.readyState==4{document.getElementByIdcls.innerHTML=httpxml.responseText;}var url=clasajax.php;url=url+?schools[]=+cat_id;url=url+&sid=+Math.random;httpxml.onreadystatechange=stateck;httpxml.openGET,url,true;httpxml.sendnull;}@DenisOmeri你能用这段代码编辑你的问题吗评论中很难读到它…谢谢