2017-12-29 24 views
0

jQuery(一般的なWeb開発)を学び始めています。この例では、入力(ユーザー名とパスワードを送信ボタンを使用して)を.ajaxを使用してPHPページに送信することになっています。成功関数。jQuery ajaxの成功関数を書く方法

これはHTML(フォーム)のコードです:

<form id="form1"> 
    Enter Username : 
    <input type="text" id="userName"> 
    <br> 
    Enter Password: 
    <input type="password" id="passWord"> 
    <br> 
    <input type="submit" value="Submit" id="sub"> 
    <br> 
</form> 
<div id="result"></div> 

このjQueryのコード(3つのアラートちょうどどこ私のコードが起こって停止し、第三アラートが到達したことがないんチェックする):

$(document).ready(function(){ 
     $("form").submit(function(){ 
      alert('clicked'); 
      var send = $(this).serialize(); 
      alert('gotData'); 
      $.ajax({ 
       type: "POST", 
       url: "login.php", 
       data: send, 
       dataType: "json", 
       success: function(msg){ 
        alert('inAjax'); 
        $("#result").html(msg.name + " " + msg.pass); 
       } 
      }); 
      return false; 
     }); 
    }); 

これは私のPHPコードです:

<?php 

$name = $_REQUEST['userName']; 
$pass = $_REQUEST['passWord']; 

$list = array('name' => $name, 'pass' => $pass); 
$c = json_encode($list); 
echo $c; 

?> 

コードが動作しない(何もWebページに表示されません)

+1

どのブラウザをお使いですか?私たちは何が起こっているのかを追跡する必要があります。ここには魔法はありません - 私たちは問題を見つけるために段階的なアプローチをとらなければなりません。私はあなたがアラートを置いたのを見る - 良い。 Ajaxリクエストから戻ってくるものを見る必要があります.Chromeインスペクタのネットワークタブは始めるのに適しています。 –

+1

あなたは 'alert()'よりも 'console.log()'のほうが良いでしょう。 –

+1

上記のコメントには大きなアドバイスがあります。また、最近JQueryで '成功'が 'done'に置き換えられていないのですか? –

答えて

1

まず、フォーム要素はnameの属性を持つ必要があります。 idの値は提出の目的には関係ありません。

あなただけ.post()方法使用して方がいいでしょう:それはコードを一時停止しますので、あなたがChromeを使用している場合、アラートでそれを追跡

$.post('login.php', $(this).serialize(), function(resp){ alert(resp); }); 

むしろよりは、ちょうどあなたの関数の先頭にdebugger;を入れて、インスペクタを開いてください。

0

まず、http環境でリクエストを送信しているかどうかを確認します。これを行うには、PHP built-in webserverをすばやく使用することができます。

//Choose the directory 
$ cd ~/public_html 
//Start the webserver on port 8000 
$ php -S localhost:8000 

代わりmethodtypeプロパティを変更します。

また、サーバー側に問題がある場合は、ブラウザのdevtoolsまたはPostmanのような別のhttpクライアントを使用してリクエストを確認してください。

+0

'type'と' method'は同じものです(docsを参照してください) – charlietfl

+0

はい、しかしjQuery docsによると: '1.9.0より前のバージョンのjQueryを使用している場合はタイプを使用する ' –

+0

'メソッド'に変更する必要がありますか? 'type'プロパティはjQueryの開始以来ずっと使用されており、いつでも非難されることはありません。 – charlietfl

関連する問題