2011-12-12 60 views
1

不,這不是關於如何使用AJAX的另一個問題。jQuery ajax,.each和ajax再次

爲什麼這不適合我?

的代碼應該做的:

  1. 當點擊一個按鈕,就應該發出一個標題和用戶ID的PHP文件,它應該插入到數據庫中。

  2. 然後它應該在div內的所有元素上創建一個.each,並將它們中的每一個發送到一個PHP文件,該文件應該將它們插入到數據庫中。

  3. 最後它應該重定向。

我得到第一個警告「第一」,但我沒有得到與「第二」的一個,並沒有插入數據庫中。

我以前的代碼工作正常使用插入,它本身是相同的,只是沒有那麼先進,不重定向功能

我的代碼:

$('#tabCreateButton').click(function() { 
    alert("first"); //checking for click 

    $.ajax({ 
     type: "POST", url: "/page/newtab.php", data: "action=newtitle&tabname=" + tabname + "&bid=" + brugerid, 
     complete: function (data) { 
      alert("second"); //checking for response 
      var tabid = $(data.responseText); 

      var XHRs = []; 

      $('#tabCurrentFriends > .dragFriend').each(function() { 
       var friendid = $(this).data('rowid'); 
       XHRs.push($.ajax({ 
        type: "POST", url: "page/newtab.php", data: "action=newtab&tabid=" + tabid + "&bid=" + brugerid + "&fid=" + friendid, 
        complete: function (data) { 
        } 
       })); 
      }); 

      $.when(XHRs).then(function() { 
       alert("third"); //should redirect here. 
      }); 
     } 
    }); 
}); 
+0

不應該$(data.responseText);只是data.responseText;? – craniumonempty

+0

@TerryR帶有延遲對象數組的$ .when'正在工作。 – kubetz

+0

@TerryR哇非常感謝!這是一個非常有用的工具! :) 它給了我的錯誤,tabname沒有定義我會看看它,並返回,如果它仍然不工作:) 非常感謝! – Flaashing

回答

1

您有XHR錯誤或Javascript錯誤,您沒有看到。

您可以使用Chrome內置的調試器(F12 - >網絡 - > XHR)或Firebug檢查這些錯誤。

0

嘗試success:error:,每次更換complete:具有可用於檢查XHR錯誤(如果有)的唯一回調函數。

+0

我一直使用完整:沒有問題:) 但不幸的是這不會幫助以太 – Flaashing