php - Ajax 下拉列表不起作用
问题描述
我正在开发一个动态站点,用户可以在其中通过证明位置和专家来搜索医生,如下所示:
这是我的主页代码:
索引.php
<script type="text/javascript">
function showHint(str){
if(str.length==0){
document.getElementById("ddlstate").innerHTML="";
return;
}
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
else{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4 && xmlHttp.status==200){
document.getElementById("ddlstate").innerHTML=xmlHttp.responseText;
}
}
xmlHttp.open("GET","getstate.php?q="+str,true);
xmlHttp.send();
}
</script>
<script type="text/javascript">
function showHide(str){
if(str.length==0){
document.getElementById("ddldis").innerHTML="";
return;
}
if(window.XMLHttpRequest){
xmlHttp=new XMLHttpRequest();
}
else{
xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlHttp.onreadystatechange=function(){
if(xmlHttp.readyState==4 && xmlHttp.status==200){
document.getElementById("ddldis").innerHTML=xmlHttp.responseText;
}
}
xmlHttp.open("GET","getdis.php?q="+str,true);
xmlHttp.send();
}
</script>
<form method="post">
<div class="col-lg-3 form-group">
<center>
<img src="images/placeholder-2.png"/ width="50px;"><br>
<label>Location</label>
</center>
<select id="ddlcnt" onchange="showHint(this.value)" class="form-control">
<option value="0">-----Select Location-----</option>
<?php
error_reporting(0);
$con=mysql_connect("localhost","root","");
mysql_select_db("doctor_db",$con);
$sql="select * from location_tb";
$res=mysql_query($sql);
while($ar=mysql_fetch_array($res)){
?>
<option value="<?php echo $ar[0];?>"><?php echo $ar[1];?></option>
<?php } ?>
</select>
</div>
<div class="col-lg-3 form-group">
<center>
<img src="images/surgeon.png"/ width="50px;">
<!--<img src="images/stethoscope.png"/ width="50px;">--><br>
<!-- <label>Doctors</label>-->
<label>Specialty</label>
</center>
<select id="ddlstate" name="ddlstate" class="form-control">
</select>
</div>
<div class="col-lg-4 form-group">
<div class="col-lg-10 mrg_less">
<center>
<img src="images/stethoscope.png"/ width="50px;"><br>
<label>Doctors</label>
</center>
</div>
<div class="col-lg-2"></div>
<div class="col-lg-9 mrg_less">
<select id="ddldis" name="ddldis" class="form-control"></select>
</div>
<div class="col-lg-2">
<button class="search" name="search" id="search" type="submit"><i class="flaticon-magnifier-tool"></i></button>
获取状态.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>AJAX</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<form>
<option value="0">-----select specialist-----</option>
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("doctor_db",$con);
$q=$_GET["q"];
$sql="select * from specialty_tb where lid='".$q."'";
$res=mysql_query($sql);
while($ar=mysql_fetch_array($res)){
echo "<option value=".$ar[0].">".$ar[1]."</option>";
}
?>
</form>
</body>
</html>
获取dis.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<form>
<option value="0">-----select doctor-----</option>
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("doctor_db",$con);
$q=$_GET["q"];
$sql="select * from doctor_details where sid='".$q."'";
$res=mysql_query($sql);
while($ar=mysql_fetch_array($res)){
echo "<option value=".$ar[0].">".$ar[1]."</option>";
}
?>
</form>
</body>
</html>
这些是我的桌子
问题是当我从列表中选择位置时,我可以使用位置 ID 从该位置获取专家。但我无法获得医生名单。
例如:- 如果我选择位置为 Kannur,我会从 Kannur 获得所有专家,如表中所示,如果我选择专家,比如麻醉师,我无法获得麻醉师的医生名单。根据在医生详细信息中输入的数据,我应该根据提供的 sid 在第三个列表中获得“医生 1”。
有人能帮帮我吗?
解决方案
我认为您应该附加字符串,然后通过 javascript 添加选择
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Untitled Document</title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
</head>
<body>
<form>
<option value="0">-----select doctor-----</option>
<?php
$con=mysql_connect("localhost","root","");
mysql_select_db("doctor_db",$con);
$q=$_GET["q"];
$sql="select * from doctor_details where sid='".$q."'";
$res=mysql_query($sql);
$option = '';
while($ar=mysql_fetch_array($res))
{
$option .= "<option value=".$ar[0].">".$ar[1]."</option>";
}
echo $option;
?>
</form>
</body>
</html>
推荐阅读
- javascript - laravel问题:ajax点击按钮问题
- c++ - 使用 OpenCV (C++) 在 Xcode 中访问网络摄像头
- reactjs - 使用 styled-components 和 React setState 切换 body 类
- tfs - 我可以默认关闭组吗?
- jquery - 如何在剑道网格弹出中比较两个具有不同值的文本框
- html - 是否有用于证明的 unicode 字符?
- .net - 发生 UnauthorizedAccessException 时如何跳过目录或文件
- jenkins - 在 Blue Ocean 中显示标签名称而不是提交消息
- excel - VBA:重新排列列代码在每张纸上将列向右移动
- xml - 我想知道特定 xslt 代码的作用