2011-05-29 138 views
0

我有这个片断这是在事实上正常工作的更新我的数据库,只有一次对其做它没有执行我的代码的其余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

有你在浏览器中发射了一个JavaScript控制台(萤火虫为例)并看看是否有脚本错误? – 2011-05-29 22:52:14

+0

@杰夫,是的,我只有它的所有运行良好... – Liam 2011-05-29 22:54:09

回答

0

,如果你想发送成功的警报改变你的网页摘要

if(data != "success5") { 
    newbalance = newbalance+credoff; 
}else{ 
    newbalance = newbalance+5; 
    alert ('hi'); 
} 

这样,如果它是“success5”你会得到你的警报

+0

我试过,那个作品,但我需要添加代码... $('#creditsBalance')。text(newbalance); $('#creditsBalance')。fadeIn(“slow”); $(“#”+ theid).text(“完成”); ...然后应该更新我的页面上的div与新的值... – Liam 2011-05-29 22:58:39

+0

只需添加此代码警报()的地方,警报是为了调试的目的吗?所以只需用您的代码替换它 – Ibu 2011-05-29 23:06:25

0

这行不更新数据库在所有。更新数据库的php代码已经被执行。你需要找出从哪里开始的地方。如果不是,则问题可能出现在php代码中(在更新数据库的部分之后),或者可能出现在javascript代码中,无论是为AJAX请求指定正确的OnSuccess事件处理程序,还是实际该事件处理程序中的代码。

在这种情况下,它很可能是NEWBALANCE没有在事件处理中定义的,因此在执行线

newbalance = newbalance + whatever; 

会导致错误。

最简单的尝试:将alert('yoyoyo');放在成功处理程序的顶部。如果您没有收到该消息,则不会调用该事件。

请确保您使用FireBug或类似工具进行测试,以检查是否没有任何语法错误或其他错误。如果您没有您没有收到消息,则不会调用事件处理程序,问题可能出在服务器代码上。

+0

我明白这行不会更新我的PHP,我试着添加警报,谢谢 – Liam 2011-05-29 23:03:58

1

您的服务器可能会添加新行或其他间距这螺丝了字符串比较,可以肯定在做这样的操作之前,修剪空白:

success: function(data) { 
    data = data.trim();