2016-05-21 59 views
1

我想發送兩個變量到PHP使用JQuery的Ajax調用。如果async設置爲false,則調用起作用,但如果async失敗,則調用失敗。當僅使用表單輸入一個變量(基本上得到輸入缺少的響應)時,該代碼也可以工作,但是,當給定兩個輸入時,代碼將返回一個未定義的錯誤。我能否得到一些建議。觸及相當長一段時間。JQuery的Ajax調用拋出未定義的錯誤

帖子編輯 - 我納入了建議的更改。修改後的代碼不起作用

這裏是jQuery代碼我現在有 -

$(document).ready(function() { 
$("#callLogin").click(function(){ 
    var username = $("#username").val(); 
    var password = +$("#login_password").val(); 
    $.ajax({ 
     url: "login.php", 
     type: "POST", 
     async: true, 
       data: 'username=' +username + '&login_password='+password, 

     success: function(response){ 
      if(response!=""){ 
       alert(response); 
       $("#loginErrMsg").html(response); 
       $("#myModal").css("display","block"); 
      }}, 
     error : function (ts) { 
        alert(ts.responseStatus); 
     } 
    }); 
}); 
}); 

一個多觀察:我也曾嘗試序列化表單數據,然後將其發送到PHP。仍然看起來工作的唯一方法是當我更改async:false。任何幫助將不勝感激

+0

哪裏是你的html? – JYoThI

+0

你的腳本看起來很完美。請提供HTML –

回答

0

如果你想分配一些東西給html,你必須把它放在括號中。

$("#loginErrMsg").html(response); 
+0

感謝您指出錯誤,但這個問題的原因似乎是別的 – soumyajyoti

+0

Btw您c一個傳遞對象到「數據」,它應該沒有問題。你爲什麼要將密碼更改爲整數?如果你在變量前加「+」,它會把你的變量改爲整數。爲什麼你需要將密碼更改爲整數? – Mirr

+0

它並沒有工作,要麼 - 數據:{ \t \t \t \t '用戶名':用戶名, \t \t \t \t 'login_password':密碼 \t \t \t}, – soumyajyoti

0

當你想傳遞多個數據在ajax調用你可以通過像我在下面的代碼所示。

$(document).ready(function() { 
$("#callLogin").click(function(){ 
var username = $("#username").val(); 
var password = +$("#login_password").val(); 
    $.ajax({ 
     url: "login.php", 
     type: "POST", 
     async: true, 
     data: 'username=' +username + '&login_password='+password, 


     success: function(response){ 
      if(response!=""){ 
       alert(response); 
       $("#loginErrMsg").html(response); 
       $("#myModal").css("display","block"); 
      }}, 
     error : function (ts) { 
        alert(ts.responseStatus); 
     } 
    }); 
}); 
}); 

試試這個可能你的問題會解決。

+0

由於它的作品。但你能告訴我什麼是錯我的代碼,特別是鑑於它的工作時,異步是設置爲false – soumyajyoti

+0

令人毛骨悚然,你的建議正在起作用,但是當我將Mirr建議的更改(這是我的一個明顯錯誤)合併後,它再次停止工作並給出相同的錯誤,我再次提供格式化的代碼 – soumyajyoti

0

通過參考此處發佈的類似問題解決了該問題。基本上需要設置$(「#callLogin」)。click(function(e){e.preventDefault(); ....}表單中的提交函數被調用兩次,這是造成問題。所有幫助反正。

相關問題