Ajax文件停止执行

时间:2011-05-29 22:48:52

标签: php ajax

我有这个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');

更新我的数据库,但后来我没有收到警报,这个代码足以让任何人看到我出错了吗?

3 个答案:

答案 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或类似工具进行测试,以检查是否出现任何语法错误或其他错误。如果您没有,则不会收到消息,则不会调用事件处理程序,问题可能在于服务器代码。

相关问题