我需要通过在组合框中选择患者的姓名来获取诊断出的疾病列表,我该怎么办?这是我的代码。

<select name="pname" class="textfields" id="model" style="width:180px;" onchange="getVal1();">
    <option id="0" >--Select Patient Name--</option>

    <?php

    $con = mysqli_connect("localhost","root","","dbnpatient");
    if (mysqli_connect_errno()){
        echo "Failed to connect to MySQL: " . mysqli_connect_error();
    }

    $pnum = $_GET['pnum'];
    $query = mysqli_query($con, "SELECT * FROM tblnpatient");
    while($row = mysqli_fetch_array($query)){
        $pnum = $row['pnum'];
        $pname = $row['pname'];
        $addr = $row['addr'];
        $complaints = $row['complaints'];

    ?>

    <option id="<?php echo $pnum; ?>" data-pnum="<?php echo $pnum; ?>" data-addr="<?php echo $addr; ?>" data-complaints="<?php echo $complaints; ?>" value="<?php echo $pname; ?>"><?php echo     $pname; ?></option>

    <?php } ?>


这是我用于过滤表的代码:而且我在此代码中遇到麻烦,因为当我选择pname时表中什么都没有出现

<?php

$con = mysqli_connect("localhost","root","","dbnpatient");
if (mysqli_connect_errno()){
    echo "Failed to connect to MySQL: " . mysqli_connect_error();
}

$pname = $_GET['pname'];
$result = mysqli_query($con,"SELECT * FROM tbldiagnosis WHERE pname='$pname'");

while($row = mysqli_fetch_array($result)) {
    echo '<tr class="record">';
    echo '<td>'.$row['diagnosis'].'</td>';
}

?>

最佳答案

使用ajax可以很容易地做到这一点。更改选择后,您可以触发jQuery调用,以将框的选定值提交到PHP页面,该页面具有用于过滤表的MySQL。然后,返回的结果将显示在指定区域的页面上。

主页:

<select name="pname">
    <option value="pname-value">pname-value</option>
</select><br>
<div id="query_results"></div>

<script type="text/javascript">
    $(document).ready(function() {
        $('select[name="pname"]).on('change',function() {
            var curPname=$(this).val();
            $.ajax({
                type:'GET',
                url:'urltotable.php?pname='+curPname,
                success:function(data) {
                    $("div#query_results").html(data);
                }
            });
        });
    });
</script>


这是一个简化的Ajax调用,它将从名为“ pname”的选择框中获取值,并将该值通过“ GET”发送到ajax调用中的“ url”变量。然后,该页面可以通过GET获取该变量,并使用它来获取查询结果。成功完成后,它将在我们添加的ID为“ query_results”的div中显示结果。

您还可以轻松地自定义选择,以使用上面列出的当前PHP。

现在,对于上面我们指定的“ urltotable.php”,您可以使用上面的表查询,但是只需确保向其中添加GET行,以便脚本可以访问您的pname变量:

$pname=$_GET["pname"];


有关完整功能列表的Ajax的更多信息,请click here to read about Ajax in the jQuery documentation.

关于php - 通过在组合框中选择来过滤表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25071584/

10-14 13:36
查看更多