ホームページ >バックエンド開発 >PHPチュートリアル >js ajax postのオブジェクトはphpに送信されると直接配列になりますか?
jquery のコード
var str ="{'a':'b','aa':'bb'}";var str2 = eval('('+str+')');var type = typeof(str2);console.log(str);console.log(type);//objectconsole.log(str2);$.post('./bb.php',{'data':str2});
$data = $_POST['data'];var_dump($data);
array(2) { ["a"]=> string(1) "b" ["aa"]=> string(2) "bb"}
var str2 = eval('('+str+')');
var str2 = eval('('+str+')');これは文字列をオブジェクトに変換する方法です。何が問題ですか?
jquery は、ajax 操作中に json オブジェクトを URL パラメーター文字列の形式に変換します
したがって、php で通常の方法でそれを受け入れることができます
jq はシリアル化関数 htmlSerialize、Serialize を提供します
jquery は、json オブジェクトを URL パラメーターに変換しますAjax操作中に文字列をURLパラメータ文字列の形式に変換します
したがって、phpで通常の方法で受け入れることができます
jqはシリアライズ関数htmlSerialize、Serializeを提供します。つまり、jsオブジェクトをphpに直接転送して、それを直接配列しますか?それは通常の使用です。なぜデータ型が変換されるのですか?
は $.post の実行時に Serialize メソッドを使用して {'data':{'a':'b','aa':'bb'}}
を data[a]=b&data[aa]= に変換しますbb php に送信
php が data[a]=b&data[aa]=bb を受け取った後、parse_str 関数を呼び出し、それを
array ( 'data' => array ( 'a' => 'b', 'aa' => 'bb', ),)に変換し、$_POST 配列に代入します
var str2 = eval('('+ str+')' ); この文は確かに json を js オブジェクトに直接変換します。
ただし、$.post はオブジェクトを php に送信できると確信していますか?配列を送信する場合でも、配列をパラメータに分割して 1 つずつ送信します。
彼はまずオブジェクトを配列に変換し、次にその配列を 1 つずつパラメータに変換し、次にパラメータを 1 つずつ PHP 側の配列にマージします。実際、これはよく目にする get メソッドのパラメータ文字列と似ていますが、get がオブジェクトも取得できるとは聞いたことがありません。
あくまで推測ですので、お気軽にコメントください。
var str2 = eval('('+str+')'); この文は確かに json を js オブジェクトに直接変換します。
ただし、$.post はオブジェクトを php に送信できると確信していますか?配列を送信する場合でも、配列をパラメータに分割して 1 つずつ送信します。
彼はまずオブジェクトを配列に変換し、次にその配列を 1 つずつパラメーターに変換し、そのパラメーターを 1 つずつ PHP 側の配列にマージします。実際、これはよく目にする get メソッドのパラメータ文字列と似ていますが、get がオブジェクトも取得できるとは聞いたことがありません。
あくまで推測ですので、お気軽にコメントください。 よく言われて、たくさん得をしました。特に「エンゲージ」という言葉の使い方がとても上手ですね!
は $.post の実行時に Serialize メソッドを使用して {'data':{'a':'b','aa':'bb'}}
を data[a]=b&data[aa]= に変換しますbb php に送信
php は data[a]=b&data[aa]=bb を受信した後、parse_str 関数を呼び出し、それを
array ( 'data' => array ( 'a' => 'b', 'aa' => 'bb', ),)に変換し、$_POST 配列に割り当てます。
よく言われて、たくさん得しました。特に「エンゲージ」という言葉の使い方がとても上手ですね!
ははは。普遍的な動詞。自分を家を建てるためにセメントを運ぶ人だと考えると、口から「do」という言葉が出てきます。 。 。
よく言われて、たくさん得しました。特に「エンゲージ」という言葉の使い方がとても上手ですね!
ははは。普遍的な動詞。自分を家を建てるためにセメントを運ぶ人だと考えると、口から「do」という言葉が出てきます。 。 。 労働をしてください!
var str2 = eval('('+str+')'); この文は確かに json を js オブジェクトに直接変換します。
ただし、$.post はオブジェクトを php に送信できると確信していますか?配列を送信する場合でも、配列をパラメータに分割して 1 つずつ送信します。
彼はまずオブジェクトを配列に変換し、次にその配列を 1 つずつパラメーターに変換し、そのパラメーターを 1 つずつ PHP 側の配列にマージします。実際、これはよく目にする get メソッドのパラメータ文字列と似ていますが、get がオブジェクトも取得できるとは聞いたことがありません。
あくまで推測ですので、お気軽にコメントください。 まだご覧いただけるかわかりませんが、今日マニュアルのこの一節を見た方が理解しやすかったです:
http://www.php.net/manual/zh/reserved.variables.httprawpostdata.php
post 渡される値は $HTTP_RAW_POST_DATA である必要があります
そして、使用する $_POST はこれに基づいてフォーマットされたデータです
var str2 = eval('('+str+')'); この文は確かに json を js オブジェクトに直接変換します。
ただし、$.post はオブジェクトを php に送信できると確信していますか?配列を送信する場合でも、配列をパラメータに分割して 1 つずつ送信します。
彼はまずオブジェクトを配列に変換し、次にその配列を 1 つずつパラメーターに変換し、そのパラメーターを 1 つずつ PHP 側の配列にマージします。実際、これはよく目にする get メソッドのパラメータ文字列と似ていますが、get がオブジェクトも取得できるとは聞いたことがありません。
あくまで推測ですので、お気軽にコメントください。 まだご覧いただけるかわかりませんが、今日マニュアルのこの一節を見た方が理解しやすかったです:
http://www.php.net/manual/zh/reserved.variables.httprawpostdata.php
post 渡される値は $HTTP_RAW_POST_DATA である必要があります
そして、私たちが使用する $_POST は、これに基づいてフォーマットされたデータです
ありがとうございます、私も調べてみます。