2017-02-19 16 views
3

これは多くの重複がありますが、どういうわけかそれらの質問のどちらも(私はスタックオーバーフローでほとんどすべての同じタイトルを検索しました)仕事はありません。 ここで私の問題は、成功関数は警告メッセージを発していないと私は理由を把握できないということです。javascript ajaxの成功関数は動作しませんか?

<form> 
    <div class="form-group"> 
    <label for="">Username</label> 
    <input type="text" class="form-control" id="user" name="user" placeholder="Username"> 
    </div> 
    <div class="form-group"> 
    <label for="">Password</label> 
    <input type="password" class="form-control" id="pass" name="pass" placeholder="Password"> 
    </div> 
    <div class="form-group"> 
    <label class="radio-inline"> 
     <input type="radio" data-toggle="buttons-radio" name="optRadio" value="prof">Professor 
    </label> 
    <label class="radio-inline"> 
     <input type="radio" data-toggle="buttons-radio" name="optRadio" value="admin">Admin 
    </label> 
    </div> 
    <button type="button" class="btn btn-block btn-social" onClick="validateForm()"> 
    <span class="fa fa-twitter"></span>Login 
    </button> 
</form> 

のJavaScriptファイル

function validateForm() { 
    var checkUser = document.getElementById("user").value; 
    var checkPass = document.getElementById("pass").value; 
    var checkOption = $("input[name=optRadio]:checked").val(); 
    /* 
    if (checkUser && checkPass && checkOption) { //checks if user is not empty 
    } else { 
     alert ("Please fill up all information"); 
    } 
    */ 
    if (checkOption == "prof") { 
    $.ajax({ 
     type: 'POST', 
     url: 'assets/connection/login.php', 
     dataType: 'json', 
     data: { 
     user: checkUser, 
     pass: checkPass, 
     }, 
     beforeSend: function() { 
     alert("a") 
     }, 
     success: function(response) { 
     alert(response) 
     } 
    }); 
    } 
} 

とPHPファイルにのみ、この

<?php echo "js test" ?> 

EDITが含まれています:としては、コメントにして、@Rax Weberの答えで指摘しました、タイポグラフィの間違いがあったsucesssuccessである必要があります)、これは問題の根本的な原因ではなく、alertは修正後に起動しません。

+0

まだ動作しない場合は、ブラウザにデベロッパーコンソールを開いてJavascriptエラーを確認しましたか?それは何が間違っているのかを理解するのに役立つかもしれません。 –

+0

ええええええと、私はChromeを使ってコンソールの返品に基づいてデバッグしていますが、残念ながら何も返されません。 – Cedirck

+0

「うまくいきません」とは、「アラート」がまったく発動しないか、必要な結果が表示されないということですか?開発ツールの「ネットワーク」タブを見てください。 AJAXリクエストは実際に送信されますか? 404または403のようなHTTPエラーを返しますか? – Xufox

答えて

3

理由は、dataType: 'json'を設定していて、JSONで応答が得られていないからです。 考えられる解決策:

  1. JSONで応答を送信します。 ファイルを投稿する際に、JSONエンコード出力を送信します。<?php echo json_encode("js test"); ?>

  2. dataTypeをデフォルトに設定します。あなたのJSからdataType: 'json'行を削除します。

+2

Ohhhhhhhhhhhhh、良いキャッチ。 –

+0

今はうまくいく。実際には私の元のコードはデータ型を持っていません。私はちょうどそれがjsonが文字列を返し、実際に文字列を返すことがわかったので検索していたからだと仮定しました。ですから、すべての問題は、成功のセマンティクスエラーでした。 JSONを指摘してくれてありがとう。 – Cedirck

+0

あなたは大歓迎です! –

1

成功でなければなりません。

sucess: function (response) { 
^
    alert (response) 
} 

編集:質問は、編集/更新されました。以前は、上記のようにセマンティクスの誤りがありました。

+1

それはいつもあなたを得る小さな細部です –

+0

何の愛のために!それはすべてTYPOです! :/ どうもありがとう!私はそれがタイプされている場合は、それはまだ色が来るのだろうか? (昇華) – Cedirck

+0

ああ。それでも成功はうまくいかない。 – Cedirck

関連する問題