我的网站上有 150 个复选框,每个带有 .generujbox
类的复选框都调用 ajax 脚本:
$(".generujbox").click(function(){
$(".progress-indicator").show();
var idcheck = $(this).val();
if($(this).is(":checked")) {
$.ajax({
type: "POST",
url: "boxsave.php",
data: { genbox: idcheck, liczba: "1" },
success: function(msg){
$(".generujbox").ajaxComplete(function(event, request, settings){
if(msg == \'OK\')
{
$(".progress-indicator").hide();
}
else
{
$(".progress-indicator").show();
}});}});
} else {
$.ajax({
type: "POST",
url: "boxsave.php",
data: { genbox: idcheck, liczba: "0" },
success: function(msg){
$(".generujbox").ajaxComplete(function(event, request, settings){
if(msg == \'OK\')
{
$(".progress-indicator").hide();
}
else
{
$(".progress-indicator").show();
}});}});
}
});
一切看起来都很好。单击复选框后,我的进度指示器工作了近 1 秒,然后隐藏(非常快)。在此之后,我单击下一个复选框,如果我在上次 ajax 调用后不稍等一下,我会看到所有内容都崩溃了。
我如何真正检查ajax何时完成所有操作并使用Mysql查询释放PHP文件?
我尝试使用 delay(800).hide(0)
但这样我猜这么多时间是否足够?
最佳答案
$.ajax({
type: "POST", url: "boxsave.php", data: { genbox: idcheck, liczba: "0" }, dataType:'json'; success: function(msg){ }
});
在ajax中添加dataType:'json'
在您的 boxsave.php 文件中,在 mysql 查询成功后添加 echo json_encode('success');。
关于php - jQuery ajax 完成并发布 php 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22299737/