0

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

$(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);
});

});

我的 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`");

而($row = mysql_fetch_assoc($result)) {

$data[] = $row;

echo json_encode( $data );

我的结果来自 php 页面

[{"patient_id":"9","patient_firstname":"Adam","patient_lastname":"Steve"}] 等等...

非常感谢任何帮助,已经坚持了一周!

4

1 回答 1

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']
});

至少你现在会收到一个有效的请求。

注意您的 HTML,如果它不是 DOM 元素,请不要使用.append,您只是将 html 元素构建为字符串,因此请改用

$('#patientselect').html(html);
于 2012-09-19T21:55:38.107 回答