0

シンプルなログイン ファイルを処理する必要があります。多くの Web チュートリアルで、jquery の Ajax リクエストに対して、コールバック関数がサーバー側スクリプトによって返されるfunction(data)ことを読みました。data

さて、私のサーバー側スクリプトは PHP です。jqueryに格納されるPHPからデータを返す方法を知りたいのdataですが、条件付きループを使用してそれらを処理できます。

ここに私のjqueryコードがあります:

$('#loginform').submit( function() {
        var querystring = $(this).serialize();
        $.post('login.php', querystring, processLI );
        function processLI(data) {
            if (data == 'success'){
            alert("Successful");
            var url = "game.php";    
            $(location).attr('href',url);
            }
            else 
                alert ('Login Failed');
        }

PHP ファイルで単純な return ステートメントを使用していますが、まったく機能していないようです。ここにlogin.phpファイルがあります。ここに必要な部分だけを投稿しました。

$statement = $connection->prepare("SELECT * FROM users WHERE username = '$username'");
    $statement->execute(array());
    $result = $statement->fetch(PDO::FETCH_ASSOC);

    if ($result['password'] == $safepass) {
        setcookie("Login", true);
        echo 'success';

    }
    else 
        echo "Failure";
4

5 に答える 5

2

関数を呼び出すのではなく、関数をパラメーターとして配置して、このようにしてみてください。

$('#loginform').submit( function() {
    var querystring = $(this).serialize();
    $.post('login.php', querystring, function(data){
        if (data == 'success') {
            alert("Successful");
            var url = "game.php";    
            $(location).attr('href',url);
        }
        else 
            alert ('Login Failed');
    });
于 2012-12-29T08:13:45.657 に答える
1

これは、AJAXリクエストをデバッグする方法についての回答です。まず、Chrome(またはSafari、またはFirebugプラグインがインストールされたFirefox)を使用してから、設定メニューから開発者ツールを開きます。ネットワークパネルで、要求/応答を確認できます。直接的な答えではないかもしれませんが、どうぞ-「ネットパネル」でChromeデベロッパーツールを使用して、リクエスト/レスポンス/クッキー/ヘッダーを確認してください。

これにより、推測する手間が省け、応答が逐語的に表示されます。その後、次回はそれを解決することができます;)そしてその後の時間

要求/応答を確認できましたか?そうでない場合は、簡単なものをお勧めします

alert(JSON.stringify(data)) 

... Chromeデバッガーの使用に問題がある場合は、コールバック関数から。

于 2012-12-29T10:05:29.170 に答える
1

echoログインが成功した場合は、ステートメントを使用してデータを出力しますecho 'success';

于 2012-12-29T07:50:25.223 に答える
0
$('#loginform').submit( function() {
    var querystring = $(this).serialize();
    $.ajax({
        url : 'login.php?'+querystring, 
        cache : false,
        success : function(data) {
            if(data == "success") {
                alert("Successful");
                var url = "game.php";    
                $(location).attr('href',url);
            } else if(data == "failure") {
                alert("Login Failed");
            }
        };
    });
});
于 2012-12-29T08:08:37.917 に答える
0

投稿のデータタイプを「html」として指定してみてください

于 2012-12-29T07:57:41.313 に答える