2011-10-18 31 views
0

我無法獲取changeuserjudge.php以打開。我把它放在其他幾個地方,沒有任何成功。誰能告訴我爲什麼這是?Popup不會在JQuery Ajax成功時打開

JQuery的:

$('#userCreateSave').click(function(){ 
       var success = false;  
       var createUserName = $('#createUserName').val(); 
       var createUserEmail = $('#createUserEmail').val(); 
       var createUserType = $('#createUserType').val(); 
       if (jQuery.trim($('#createUserEmail').val()).length<1){ 
        alert ("Please enter an email address."); 
        return false; 
       } 
       else { 

        $.ajax({ 
          type: "POST", 
          url: "adminmenu.php", 
          data: 'createUserName=' + createUserName + '&createUserEmail=' + createUserEmail+ '&createUserType=' + createUserType, 
          success: function(){ 
           success = true; 
           $('#newCreateRow').remove(); 
           $('#tableUsers tr:first').after('<tr class="altr"><td>-</td><td>'+createUserName+'</td><td>'+createUserEmail+'</td><td>'+createUserType+'</td><td>Active</td></tr>'); 
           $('#newUserLink').show(); 
          } 

         }); 
       } 
        if(success) { 
         window.open("changeuserjudge.php"); 
        } 
      });  
+0

您確定AJAX「Success」事件正在觸發,「success」實際上是否設置爲true? –

回答

1

而不是設置一個名爲success布爾值,創建一個名爲success()功能,並執行它一旦請求已經完成。您的代碼無法按預期工作,因爲success在撥打$.ajax()後立即失效。

執行模式:

.ajax()
success == false
AJAX完成:設置的功能success = true
結束

一種可能實現:

var success = function(){ 
    window.open("changeuserjudge.php"); 
} 
$.ajax({ 
     type: "POST", 
     url: "adminmenu.php", 
     data: 'createUserName=' + createUserName + '&createUserEmail=' + createUserEmail+ '&createUserType=' + createUserType, 
     success: function(){ 
      success(); //Execute the callback function: `success()` 
      $('#newCreateRow').remove(); 
      $('#tableUsers tr:first').after('<tr class="altr"><td>-</td><td>'+createUserName+'</td><td>'+createUserEmail+'</td><td>'+createUserType+'</td><td>Active</td></tr>'); 
      $('#newUserLink').show(); 
     } 

    }); 
} 
2

爲什麼不把你的成功功能打開。從而確保在Ajax調用完成時調用它。它不會因爲AJAX是異步設置爲true

1

你應該包括

window.open("changeuserjudge.php"); 
的研製成功回調函數中

,也請務必登錄看看閹執行的研製成功功能或不

console.log("success") 

您創建的本地變量成功與選項成功無關,它總是會是錯誤的。

2

ajax中的第一個a表示異步,表示成功回調被調出正常流程,因此在if(success)聲明之後。你應該把window.open("changeuserjudge.php");放在成功回調中。