我正在尝试在创建页面时填充选定的菜单,但没有显示的选项。
$(document).ready(function() {
$.ajax('patientlist.php', function(data){
var html = '';
var len = data.length;
for (var i = 0; i< len; i++) {
html += '<option value="' + data[i].patient_id + '">' + data[i].patient_firstname + data[i].patient_lastname + '</option>';}
$('#patientselect').append(html);
});
});
my patientlist.php
$result = mysql_query("SELECT `patient_id`, `patient_firstname`, `patient_lastname` FROM `patients` WHERE `company_id` = " . $user_data['company_id'] . " ORDER BY `patient_firstname`");
while($ row = mysql_fetch_assoc($ result)){
$data[] = $row;
echo json_encode( $data );
} 我的结果来自php页面
[{“patient_id”:“9”,“patient_firstname”:“Adam”,“patient_lastname”:“Steve”}等等......
真的感谢任何帮助,坚持了一个星期!
答案 0 :(得分:1)
所以,再次发帖。
首先,你应该将echo json_encode( $data );
放在你的while循环中
while($row = mysql_fetch_assoc($result)) {
$data[] = $row;
}
echo json_encode( $data );
其次,您的$ajax
语法不正确,请将其更改为$.post
,并告诉$.post
您希望'json'
来自patientlist.php
的回复$(document).ready(function() {
$.post('patientlist.php', {}, function(data){
/* code */
}, 'json'); // <= set data type json here
});
json
检索有效的data
字符串时,您可以使用$.each
方法迭代$.each(data, function(index, patient) {
console.log(patient.patient_id); // or use patient['patient_id']
});
.append
至少您现在会收到有效的请求。
注意到您的HTML,如果它不是DOM元素,请不要使用$('#patientselect').html(html);
,您只是将html元素构建为字符串,因此请改用
{{1}}