我有这个AJAX代码片段,它正在更新我的数据库,只有在它完成它没有执行我的其余代码时... ...
$(".getPoint").click(function()
{
var theid = $(this).attr("id");
var onlyID = theid.split("_");
var onlyID = onlyID[1];
var credoff = parseInt($(this).children('input.credoff:hidden').val());
$.ajax({
url: 'do.php',
type: 'POST',
data: "userID=" + onlyID + "&credoff=" + credoff,
success: function(data) {
if(data != "success1" && data != "success5") {
$("#" + theid).text(data);
}else{
$("#thediv_" + onlyID).fadeOut("slow");
$('#creditsBalance').fadeOut("slow");
newbalance = parseInt($('#creditsBalance').text());
if(data != "success5") {
newbalance = newbalance+credoff;
}else{
newbalance = newbalance+5;
}
alert ('hi');
$('#creditsBalance').text(newbalance);
$('#creditsBalance').fadeIn("slow");
$("#" + theid).text("Done");
}
},
beforeSend: function()
{
$("#" + theid).text("Working...");
},
error: function()
{
$("#" + theid).text("Failed...Click to Retry");
}
});
});
该行
if(data != "success5") {
newbalance = newbalance+credoff;
}else{
newbalance = newbalance+5;
}
alert ('hi');
更新我的数据库,但后来我没有收到警报,这个代码足以让任何人看到我出错了吗?
答案 0 :(得分:1)
您的服务器可能正在添加换行符或其他间距,这会阻碍字符串比较,请务必在执行此类操作之前修剪空格:
success: function(data) {
data = data.trim();
答案 1 :(得分:0)
如果您想在成功时发送提醒,请更改您的代码段
if(data != "success5") {
newbalance = newbalance+credoff;
}else{
newbalance = newbalance+5;
alert ('hi');
}
这样,如果是'success5',您将收到提醒
答案 2 :(得分:0)
该行根本不更新数据库。已经执行了更新数据库的php代码。您需要找出if到达的点到达的位置。如果不是,则问题可能出在php代码中(在更新数据库的部分之后),或者可能在javascript代码中,或者在为AJAX请求指定正确的OnSuccess
事件处理程序时,或者在该事件处理程序的实际代码中。
在这种情况下,很可能是newbalance未在事件处理程序中定义,因此执行该行
newbalance = newbalance + whatever;
会导致错误。
最简单的尝试:将alert('yoyoyo');
放在成功处理程序的顶部。如果您没有收到该消息,则不会调用该事件。
确保使用FireBug或类似工具进行测试,以检查是否出现任何语法错误或其他错误。如果您没有和,则不会收到消息,则不会调用事件处理程序,问题可能在于服务器代码。