0

さて、別の試み:

これは私が使用しているすべてのjqueryコードです。おそらく$.post()の前のコードで何か間違ったことをしました。同じフォームのonclickで次の関数を呼び出します...

function setLogin()
{

$('#login-form').submit(function(e) {
    e.preventDefault();
            //passing form field to vars
    var formUsername=$("#login-form #username").val();
    var formPassword=$("#login-form #password").val();
            //checks on fields lenght
    if((formUsername.length<6))
    {
        $("#ajax-output").html("<div class='error'>Attenzione username troppo breve!</div>");
    }
    else if((formPassword.length<6))
    {
        $("#ajax-output").html("<div class='error'>Attenzione password troppo breve!</div>");
    }
    else
    {
        $.post(
                            //the url
            '?module=login',

                            //data got from login form
            {
                "username": formUsername,
                "password": formPassword,
            },
            //response
            function(data){
                $("#ajax-output").html(data.reply)
            },
            //type
            "json"

        );
    }
});
}

phpファイルでこのコードだけを試してみましたが、それでも何も返されません...

function Login()
{
    //just to try
echo json_encode(array('reply'=>'foo'));
}

それでも動作しません...

4

2 に答える 2

2

そもそも投稿が実行されていると確信していますか?

ファイアーバグを使おう!(またはクロムの組み込み開発者ツール)

firebug を使用して、Web ページのあらゆる部分を切り分けることができます。

AJAX 要求とその結果、ヘッダー、およびコンテンツを含む、ブラウザーによって行われたすべての要求を表示する「ネット」タブがあります。

これを使用して、リクエストが本当に行われているかどうか、および結果がどうなるかを確認します。それからそこからそれを取ります。

于 2012-04-16T18:43:13.267 に答える
0

応答するときは、コンテンツタイプのヘッダーを設定していることを確認してください。ブラウザがJSONを受信して​​いることを認識していない場合、ブラウザはJSONの使用を試みない可能性があります。

function Login()
{
    header('Content-Type: application/json');
    echo json_encode(array('reply'=>'foo'));
}
于 2012-04-16T21:11:15.397 に答える