[英]Nesting of ajax call function
Ajax函數(帶嵌套)
function open_appointment(id)
{
save_method = 'open_appointment';
$('#form_open_appointment')[0].reset(); // reset form on modals
$('.form-group').removeClass('has-error'); // clear error class
$('.help-block').empty(); // clear error string
//Ajax Load data from ajax
$.ajax({
url : "<?php echo site_url('ReceptionistController/ajax_edit_appointment')?>/" + id,
type: "GET",
dataType: "JSON",
success: function(data)
{
$.ajax({
url : "<?php echo site_url('DoctorController/ajax_edit_patient')?>/" +data.ap_patient,
type: "GET",
dataType: "JSON",
success: function(data)
{
$('[name="pt_name"]').val(data.pt_name);
},
error: function (jqXHR, textStatus, errorThrown)
{
alert('Failed');
}
});
$('#modal_open_appointment').modal('show'); // show bootstrap modal when complete loaded
$('.modal-title').text('Open Appointment'); // Set title to Bootstrap modal title
},
error: function (jqXHR, textStatus, errorThrown)
{
alert('Error get data from ajax');
}
});
}
我想在另一個中使用一個ajax調用。 我已經編寫了上面的代碼,但它不起作用(嵌套時),並顯示“失敗”。 嵌入ajax調用函數存在問題
你可以使用下面的承諾
代碼未經測試......
供參考: https : //developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Promise
var getAppointment = function() {
return new Promise(function(resolve, reject) {
$.ajax({
url : "<?php echo site_url('ReceptionistController/ajax_edit_appointment')?>/" + id,
type: "GET",
dataType: "JSON",
success: function(data)
{
resolve(data);
},
error: function (jqXHR, textStatus, errorThrown)
{
reject('Error get data from ajax');
}
});
})
}
var editPatient = function(data) {
return new Promise(function(resolve, reject) {
$.ajax({
url : "<?php echo site_url('DoctorController/ajax_edit_patient')?>/" +data.ap_patient,
type: "GET",
dataType: "JSON",
success: function(data)
{
resolve(data);
},
error: function (jqXHR, textStatus, errorThrown)
{
reject('Failed');
}
});
}
}
getAppointment()
.then(function(data) {
return editPatient(data)
})
.then(function(data) {
$('[name="pt_name"]').val(data.pt_name);
})
.catch(function(error) {
console.log(error)
));
語法看起來不錯,但首先,檢查外部ajax請求它是否正常工作並正確返回data.ap_patient。 之后調用內部ajax請求。 並檢查請求是否要更正操作方法的檢查元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.