Php 相关选择输入
有人能帮我吗。为了显示MySql数据库中的结果,我必须选择学校、班级、科目和考试。但是列出所有的班级或所有的考试不是很实用,所以我想做另一个功能,当我在第一个选择框中选择一些学校时,它在第二个选择框中只显示所选学校的班级 我的代码是: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
<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你能用这段代码编辑你的问题吗评论中很难读到它…谢谢