我可能在这里遗漏了一些非常简单的东西,但我想要做的是在我的页面上更新两个divs
,同时点击一个项目时同时调用AJAX请求。
我看过here 但不幸的是,我仍然遗漏了代码中的一些内容。
我有以下JavaScript代码:
$(document.body).on('click', '.details', function(event) {
// $(this) = your current element that clicked.
// additional code
var id = event.target.id;
//alert(id);
//alert($(this));
_formurl = "home_stocktake_locations_list_group.php";
_formdata = {
'store_id': id
};
_formurl2 = "home_stocktake_list.php";
$.ajax({
type: "GET",
url: _formurl,
data: _formdata,
success: function(xhrResponse) {
$('#current').html(xhrResponse);
var rowCount = $('#locations').length;
row_count = parseInt(rowCount);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$('#alert_msg').html(errorThrown);
$('#alert_msg').fadeIn("slow");
}
}),
$.ajax({
type: "GET",
url: _formurl2,
data: _formdata,
success: function(xhrResponse) {
$('#previous').html(xhrResponse);
var rowCount = $('#dd_home_stocktake').length;
row_count = parseInt(rowCount);
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
$('#alert_msg').html(errorThrown);
$('#alert_msg').fadeIn("slow");
}
});
});
当我查看控制台中发生的情况时,只调用home_stocktake_locations_list_group.php
文件,完全忽略第二个AJAX调用。是什么造成的?
在控制台中,我只能看到以下内容:
答案 0 :(得分:1)
在第一个$.ajax
之后,您有一个,
(逗号),请替换为;
(分号)。那么,它对我来说很好。
此外,如果您要发送有关请求的数据,请考虑使用$.post
而不是较低级$.ajax
。此外,您有相同的错误例程,因此将其隔离:
function handleError(xhr, status, error) {
$('#alert_msg').html(error);
$('#alert_msg').fadeIn('slow');
}
$.post(_formurl, _formdata)
.done(function(data) {
$('#current').html(data);
var rowCount = $('#locations').length;
row_count = parseInt(rowCount);
})
.fail(handleError);
$.post(_formurl2, _formdata)
.done(function(data) {
$('#previous').html(data);
var rowCount = $('#dd_home_stocktake').length;
row_count = parseInt(rowCount);
})
.fail(handleError);
答案 1 :(得分:0)
AJAX请求是异步完成的,因此您可以直接启动它们(即在第二个$ .ajax命令之前没有逗号)。
如果您的AJAX请求彼此依赖并且必须在特定的ordre中完成,请在" success"中启动第二个请求。第一个请求的一部分。
答案 2 :(得分:0)
,
之后丢失$.ajax
并替换为;
即
}),
$.ajax({
变为
});
$.ajax({
答案 3 :(得分:0)
使用单独的promise中的每个请求,并且当所有promise都已解析时,然后函数触发事件以更改DOM。