-1

jqueryをphpで使用する場合、データをHTMLとして送信し、データをjsonとして受信することは可能ですか? 私の場合、jsonは英数字データしか処理できないため、フォームデータをHTMLとして送信しています。フォームにエラーが含まれている場合は、エラー メッセージの配列が返され、エラー メッセージの div に追加されます。そうでない場合は、ユーザーがリダイレクトされます。これを行うことは可能ですか?どのデータ型を指定し、json_encode を使用して配列を返す必要がありますか

$("#sform").submit(function() {
    $.ajax({
        type: "POST",
        data: $(#sform).serialize(),
        cache: false,
        //What data type to sepcify here? Data goes as HTML but returns as json
        url: "user_verify.php",
        success: function(data) {
            //Print the php arrays data here to errormessage divs
        }
    });
    return false;
});
4

2 に答える 2

0

dataType : 'json'お帰りjsonの際にご利用くださいphp

$("#sform").submit(function() {
    $.ajax({
        type: "POST",
        data: $(this).serialize(),
        cache: false,
        //What data type to sepcify here? Data goes as HTML but returns as json
        url: "user_verify.php",
        success: function(data) {
            //Print the php arrays data here to errormessage divs
        },
        dataType:'json'
    });
    return false;
});

PS:あなたの質問ではAPIi'm sending form data as HTMLを使用してい.serialize()ます。つまり、データを文字列でエンコードして送信しています。したがって、HTMLを送信していません

于 2012-08-19T06:05:53.093 に答える
0

返されるデータのタイプをサーバーに伝えるには、次のdataType引数を使用します。

$("#sform").submit(function() {
    $.ajax({
        type: "POST",
        data: $(#sform).serialize(),
        cache: false,
        dataType: 'json',
        url: "user_verify.php",
        success: function(data) {
            //Print the php arrays data here to errormessage divs
        }
    });
    return false;
});

dataType指定しない場合は$.ajax、サーバーから返されたヘッダーに基づいてタイプを推測しようとします。

あなたの場合、これをphpページに追加することもできます:

header('Content-type: application/json');

あなたが述べたように、でデータを返しますjson_encode()

データを取得しない場合はPOST、次のメソッドを確認することもできますgetJSON(): http://api.jquery.com/jQuery.getJSON/

注: dataTypeAND を使用して を に設定するのcontent-typeapplication/json冗長かもしれませんが、明確にすることができます。

于 2012-08-19T06:09:21.433 に答える