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