1
<form action="index.php" method="POST" id="form">
<input type="text" name="guest" id="guest_name" class="textbox"/><br />
<textarea name="textarea" id="text" class="textarea"></textarea/><br />
<input type="submit" id="submit" class="submit"/><br />
</form>

Jクエリ

$.post("events.php?action=send", { data :  $("#form").serialize() }, function(data, error) { }

post DATA にデータが含まれているかどうかをテストします。

echo var_dump($_POST['data']);

私はこれを得る:

name=blabla&comment=blabla1

そして、私がするとき

echo $_POST['guest'];

何も表示されません。NULL です。

質問:

私は何を間違えましたか?POST ゲストがいっぱいにならないのはなぜですか? それがDATAにあり、フォームのメソッドもPOSTの場合。

ありがとう!

4

4 に答える 4

8

データ パラメータがシリアル化された文字列であるオブジェクトではなく、シリアル化された文字列をデータ パラメータとして $.post に渡します。

$.post("events.php?action=send", $("#form").serialize() , function(data, error) { }

$_POST['guest']などにアクセスできるようになりました

于 2013-04-14T19:11:35.010 に答える
2
<?php
parse_str($_POST['data'], $data);
print_r($data);
于 2013-04-14T19:10:45.243 に答える
0

あなたは間違った方法でそれをやっています。このようにしてみてください

$.post(
        "events.php?action=send", 
        $("#form").serialize() , 
        function(data, error) {}
);

PHP 側では、次のように $_POST 配列にアクセスします

echo $_POST['guest'];
echo $_POST['textarea'];

不要なデータ キーを削除します。$("#form").serialize()通常のフォーム送信と同じように簡単にアクセスできる投稿でクエリ文字列を作成します。

参考文献

JQuery .serialize

于 2013-04-14T19:11:55.487 に答える
-1

あなたが書いたものから、 $_POST['data']['guest'] にはあなたが探しているものが含まれているように見えます。

于 2013-04-14T19:09:26.330 に答える