2016-05-21 21 views
1

Jquery Ajax呼び出しを使用して2つの変数をPHPに送信しようとしています。 asyncがfalseに設定されている場合は呼び出しが機能しますが、trueの場合は失敗します。このコードは、フォームを使って1つの変数だけが入力された場合(基本的に入力の欠落の応答を得る)にも機能しますが、両方の入力が与えられた場合、コードは未定義のエラーを返します。私はいくつかの提案をお願いできますか?かなりの時間ストゥルク。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

あなたのスクリプトは完璧に見えます.http: –

答えて

0

何かをhtmlに割り当てる場合は、角かっこで囲む必要があります。

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

エラーを指摘していただきありがとうございます。しかし、この問題の原因は他にもあるようです。 – soumyajyoti

+0

Btw you 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

ありがとうございます。私のコードで何が間違っているか教えてください。偽に設定する – soumyajyoti

+0

あなたの提案はうまくいきましたが、Mirrが提案した変更を以下のように組み込んだとき(私の側で明白なエラーでした)、再び動作を停止し、同じエラーが発生します。 – soumyajyoti

0

ここに掲載された同様の問題を参照して問題を解決しました。基本的に$( "#callLogin")を設定する必要がありました。(function(e){e.preventDefault(); ....}フォームのsubmit関数が2回呼び出されていました。とにかくすべての助けてください。

関連する問題