jquerymobile selectmenu没有填充

时间:2012-09-19 21:51:18

标签: php json jquery-mobile

我正在尝试在创建页面时填充选定的菜单,但没有显示的选项。

$(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”}等等......

真的感谢任何帮助,坚持了一个星期!

1 个答案:

答案 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}}