1

ゲームのビルド用のログインおよび登録システムに JS ajax と php を使用しています。

私の問題は、ajaxリクエストが実際に私が指摘したphpコードを処理しているかどうかわからないことです。コードを実行すると Web ページで正しいことが起こりますが、データが実際に存在することを確認するために var_dump() を php に入れましたが、通常 var_dump で行うように Web ページの php からは何も表示されません。 ()

使用しているhtml imは次のとおりです。

<article id="container">
    <div id="load-new" class="game_menu">
        <h1>LOAD/NEW</h1>
    </div>
    <div id="reg" class="game_menu">
        <h1>REGISTER</h1>
        <form name="register" method="post" action="">
                <label for="usernamesignup" class="uname">Your username</label>
                <input id="usernamesignup" name="usernamesignup" required="required" type="text" placeholder="Username" />
                <label for="emailsignup" class="youmail"> Your email</label>
                <input id="emailsignup" name="emailsignup" required="required" type="email" placeholder="domain@mydomain.com"/>
                <label for="passwordsignup" class="youpasswd">Your password </label>
                <input id="passwordsignup" name="passwordsignup" required="required" type="password"/>
                <label for="passwordsignup_confirm" class="youpasswd">Please confirm your password </label>
                <input id="passwordsignup_confirm" name="passwordsignup_confirm" required="required" type="password"/>
                <button id="reg_submit" type="button">Register</button>
        </form>
    </div>
    <div id="login" class="game_menu">
        <h1>LOGIN</h1>
        <form name="login" method="post" action="">
            <label for="username" id="username_label">Username:</label>
            <input type="text" name="username" id="username" value=""/>
            <label for="password" id="password_label">Password:</label>
            <input type="password" name="password" id="password" value=""/>
            <button id="login_submit" type="button">Login</button>
        </form>
    </div>
    <div id="access" class="game_menu">
        <h1>ACCESS</h1>
        <button id="login_but" type="button">Login</button>
        <button id="reg_but" type="button">Register</button>
    </div>

ajaxリクエストで使用するJS imは次のとおりです。

this.login_ajax = function()
{
        var username = $("#username").val();
        var password = $("#password").val();

        var dataString = 'username='+ username + '&password='+ password;
        alert(dataString);

    $.ajax({
        type:"POST",
        url:"PHP/login.php",
        data: dataString,
        success: function() {
            $('#login').hide();
            $('#load-new').show();
        },
        error: function(){
            alert("ERROR");
        }

    });
};

そして、実行されるphpファイルは次のとおりです。

 if ((isset($_POST['username'])) && (strlen(trim($_POST['username'])) > 0)) {
    $username = stripslashes(strip_tags($_POST['username']));
} else {$username = 'No username entered';}
if ((isset($_POST['password'])) && (strlen(trim($_POST['password'])) > 0)) {
    $password = stripslashes(strip_tags($_POST['password']));
} else {$password = 'No password entered';}

var_dump($username);

私が言ったように、ajaxリクエストは成功しましたが、phpファイルからダンプを受け取っていないので、phpファイルは実際に実行されていますか?

ありがとう

4

3 に答える 3

1

success() 内で、PHP から HTML ページに渡されるデータを確認できます。成功関数(データ) {...} をセットアップし、console.log(data); のようなことをする必要があります。成功関数自体の中で。次に、ブラウザを開き、console.log が何を出力しているかを確認します。

また、Google Chrome を使用している場合は、Chrome プラグインPHP コンソールをダウンロードして、将来の PHP エラーと警告を確認することを強くお勧めします。完璧ではないかもしれませんが、素晴らしいと思います!

于 2013-03-09T20:45:42.087 に答える
0

console.log を使用して AJAX コールバックを介して結果をチェックするよりも AJAX リクエストをチェックする簡単な方法があり、 HTTP ステータス コードを含むリクエスト/レスポンスのすべての詳細を確認できます (したがって、 500 サーバー エラーは発生しません)。

  • 最初に、チェックする必要があるすべてのものをダンプするように、サーバー側スクリプト (この場合は PHP) をセットアップします。すぐに生の応答を確認するため、形式 (JSON / XML / プレーンテキスト) は関係ありません。
  • ボタンを HTML に追加し、それを jQuery に接続して、クリック時に AJAX リクエストを作成します。

    $('#testButton').click(関数(){ $.ajax(オプション); });

現在、ほとんどのブラウザーには開発者ツールがあります (Firefox の Firebug?)

Chrome の場合:

  • F12 を押して開発者ツールを開きます。
  • [ネットワーク] タブに切り替えます。
  • [ネットワーク] タブを開いた瞬間から、devtools はページから行われた各要求の記録を開始します。
  • ここで AJAX リクエストを開始します (通常はテスト ボタンを使用するのが適切です)。リクエストがリストに表示されるはずです。
  • リクエストをクリックすると詳細が開き、ヘッダー、プレビュー、レスポンス、Cookie、およびタイミングの詳細が表示されます。

Internet Explorer の場合:

  • F12 を押して開発者ツールを開きます。
  • [ネットワーク] タブに切り替えます。
  • キャプチャ開始ボタンを押す
  • AJAX リクエストを開始する
  • 応答をダブルクリックして詳細を表示します

Firefox の場合:

  • 似ていると思いますが、しばらく使用していないので、誰かがこれを編集して適切な手順を追加できることを願っています!

これは、AJAX リクエストの背後で何が起こっているかを正確に調べるための最良の方法です。

誤解しないでください - AJAX コールバックと console.log (または Chrome では console.dir) を使用して AJAX リクエストをデバッグすることはできます (また使用する必要があります)。そして「フードの下を見る」ための最速の方法!

于 2013-03-09T20:58:13.287 に答える
0

ブラウザから php ファイルを直接実行して、結果を確認します。少なくとも開発の場合は、GET を使用する方が簡単です。

また、コードはサーバーから受信した情報と対話しません。コールバックにはパラメータが必要です

success: function (data) {

    alert(data);

}

編集

AJAX アクティビティは通常、サーバーでのプログラムの実行 (この場合は login.php) と、結果 (文字列) の取得で構成されます。しかし、サーバーに情報を求めて何もしないのは、かなりばかげていますね。これが、成功のためのコールバック関数を定義する理由です。

データベース内の本の参照を参照し、著者の名前を出力する .php ファイルがあるとします。クライアントで取得するのは作成者の名前です...したがって、1つの単純なコールバック関数は次のようになります。

success: function (author) {
    alert('that book was written by ' + author);
}

成功のコールバックの最初のパラメーターは、サーバーから受信した文字列です。文字列ではなく複数の値を返したい場合は、$.getJSON 関数を使用するか、結果を JSON として解析することを $.ajax で指定する必要があります。

于 2013-03-09T20:41:39.547 に答える