2011-05-29 132 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();