[英]How to get multiple responses from PHP file via AJAX?
我的PHP文件执行2个操作:1。将表单中的数据提交到db表,2。发送电子邮件。
我想要做的是通过ajax显示状态消息。 例如,“第一次操作完成,请等待第二次”然后当第二次完成时显示下一条消息“第二次操作也完成”。 现在我的ajax看起来像那样。
我怎么修改它?
//add status data to form
form.data('formstatus', 'submitting');
if (validate()) {
//send data to server for validation
$.ajax({
url: formUrl,
type: formMethod,
dataType: "json",
data: formData,
success: function (data) {
$.notifyBar({
cls: data.status,
html: data.message
});
form.data('formstatus', 'idle');
}
});
}
如果您要执行两个具有不同执行时间的操作,只需发送两个不同的AJAX查询,并从中获取响应。
将PHP服务分为两部分。 如果第二部分依赖于第一部分,而不是同时发送两个请求,则在第一部分返回时发送第二个请求。
换句话说,在成功回调中,您将通知用户第一个操作已完成,然后继续调用第二个操作,其成功回调将通知第二个操作已完成。
在成功块中,您可以执行另一个 ajax调用。 那是最简单的。 您可以在.success(),. ajaxSucces(),. complete()或.then()函数中执行此操作:$ .ajax(...)。success(...);
理想情况下,您可以通过示例将代码嵌入到函数中
$.ajax({
url: formUrl,
type: formMethod,
dataType: "json",
data: formData,
success: function (data) {
notifyResponse(data);
form.data('formstatus', 'idle');
sendMail();
}
});
function sendMail() {
$.get(mailUrl, function(data) { // or $.post(...
notifyResponse(data);
});
}
function notifyResponse(data) {
$.notifyBar({
cls: data.status,
html: data.message
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.