我有一个功能,可以将新患者添加到数据库中,获取json数据,然后将新患者添加到选择菜单中。这很好。我需要将这些数据添加到相应的文本输入中,即输入#datid_id,输入#datid_firstname等,这应该出现在.ajax完成中,但没有任何反应。
非常感谢任何帮助!
的Ajax
$('#newpatient').click(function() {
var patientadd = $('#patientaddform').serializeArray();
$.ajax({
url: 'adam.php',
type: "POST",
data: patientadd,
dataType: 'json',
success: function(data){
var html = '';
var len = data.length;
for (var i = 0; i< len; i++) {
html += '<option selected="selected" value="' + data[i].patient_id + '">' + data[i].patient_firstname + ' ' + data[i].patient_lastname + ' : ' + data[i].patient_dob + '</option>';
}
alert(html);
$('#patientselect').prepend(html);
$('#patientselect').selectmenu('refresh', true);
},
complete: function (data) {
for(var id in data) {
$('input#' + id).val( data[id] );
}
}
});
});
json数据返回
[{"patient_id":"22","patient_firstname":"","patient_lastname":"","patient_dob":"0000-00-00"}]
相应的文本输入字段是输入#datid_id,输入#datid_firstname等,这就是为什么我试图将'input#'添加到ajax完成中的id然后将该val添加到文本输入中。
答案 0 :(得分:1)
complete
回拨的参数是jqXHR
和textStatus
。不是data
。有关complete(jqXHR, textStatus)
答案 1 :(得分:0)
你的json数据是一个对象数组,所以你必须像这样添加数组的第一个元素:
for(var id in data[0]) {
$('input#' + id).val( data[0][id] );
}
或者您必须调整服务器响应。
还要考虑@ techfoobar的回答:
完整回调的参数是jqXHR和textStatus。不是数据。有关完整(jqXHR,textStatus)
的正确定义,请参阅http://api.jquery.com/jQuery.ajax/