我的AJAX似乎不工作。它应该将患者的详细信息加载到下拉菜单中。
这是我的ajax代码:function PopulatePatient()
{
$("#PatientDropDown").empty();
$("#PatientDropDown").append("<option>Loading.....</option>");
$.ajax({
type:"POST",
url:"../listener/populatePatientName.php",
contentType:"application/json; charset=utf-8",
dataType:"json",
success: function(data){
$("#PatientDropDown").empty();
$("#PatientDropDown").append("<option value=''>-Select Patient-</option>");
$.each(data,function(i,item)
{
$("#PatientDropDown").append('<option value="'+ data[i].patientUserId +'">'+ data[i].patientFirstName +'</option>');
});
},
complete: function()
{
}
});
}
这是我的PHP代码(populatePatientName.php):
<?php
include '../core/init.php';
$sql = mysql_query("SELECT patientUserId,patientFirstName FROM patientdetails");
if(mysql_num_rows($sql))
{
$data=array();
while($row=mysql_fetch_array($sql))
{
$data[]=array
(
'patientUserId' => $row['patientUserId']
'patientFirstName' => $row['patientFirstName']
);
}
header('Content-type: application/json');
echo json_encode($data);
}
?>
这是我的HTML代码:
<select class="form-control" id="PatientDropDown">
</select>
这个代码在我朋友的电脑上工作。我的数据库和查询运行良好。表中包含的数据。
我的代码停在这里:$ (" # PatientDropDown ") .append("加载 .....");
不输入ajax。有解决方案吗?
尝试$.each()
函数在ajax成功前的这一行
data= JSON.parse(data);
在ajax类型中使用"GET"代替"POST"
您的脚本绝对没问题,但是您没有任何将触发PopulatePatient()
函数的事件。运行函数获取数据。使用console.log(data)
来检查你的php是否在发送数据
尝试使用web浏览器访问populatePatientName.php,它应该返回JSON数据
我找到了解决方案,我忘了逗号,
<?php
include '../core/init.php';
$sql = mysql_query("SELECT patientUserId,patientFirstName FROM patientdetails");
if(mysql_num_rows($sql))
{
$data=array();
while($row=mysql_fetch_array($sql))
{
$data[]=array
(
'patientUserId' => $row['patientUserId'],
'patientFirstName' => $row['patientFirstName']
);
}
header('Content-type: application/json');
echo json_encode($data);
}
?>
$data[]=array
(
'patientUserId' => $row['patientUserId'],
'patientFirstName' => $row['patientFirstName']
);
两个问题:
-它是包含在头部标签像这样的jquery ?
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
-尝试使用一个按钮填充:
<input type="button" onClick="populatePatient()" />