通过在组合框中选择过滤表

时间:2014-08-01 01:38:39

标签: php mysql

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

<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时,表格中会出现nothings

<?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>';
}

?>

1 个答案:

答案 0 :(得分:0)

这可以使用ajax轻松完成。在更改select时,您可以触发一个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调用,它将从名为&#34; pname&#34;的选择框中获取值。它会将该值发送给&#34; url&#34; ajax调用中的变量通过&#34; GET&#34;。然后,此页面可以通过GET获取该变量,并使用它来获取查询结果。成功完成后,它将在我们添加的div中显示结果,ID为&#34; query_results&#34;。

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

现在为&#34; urltotable.php&#34;如上所述,您可以使用上面的表查询,但只需确保向其添加GET行,以便脚本可以访问您的pname变量:

$pname=$_GET["pname"];

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