首页 > 解决方案 > 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>

这些是我的桌子

location_tb,专业_tb 医生详细信息

问题是当我从列表中选择位置时,我可以使用位置 ID 从该位置获取专家。但我无法获得医生名单。

例如:- 如果我选择位置为 Kannur,我会从 Kannur 获得所有专家,如表中所示,如果我选择专家,比如麻醉师,我无法获得麻醉师的医生名单。根据在医生详细信息中输入的数据,我应该根据提供的 sid 在第三个列表中获得“医生 1”。

有人能帮帮我吗?

标签: phphtmlmysqlajax

解决方案


我认为您应该附加字符串,然后通过 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>

推荐阅读