1

現在、jQuery .postを使用してフォームをコーディングしていますが、処理を担当するファイルには次のコードが含まれています。

print_r($_POST);

これは、次の動的出力を返します。

Array ( [data] => capacity=50-1000+people&bookingdate=17%2F04%2F2012&grade=1+star )

この配列を容量予約日グレードの3つの変数に分割しようとしていますが、その方法がわかりません。どのようにアイデアはありますか?echo $_POST["capacity"]を使用してみました。しかし、それは機能しません。

前もって感謝します!

編集

これは私が使用しているjQueryです:

<script type="text/javascript">
$(document).ready(function() {
    $("#postData").click(function() {
        $("#last-step").hide(600);


       $.post('resources/process2.php', { data: $("#task5_booking").serialize() }, function(data) {
            $("#result").html(data);
      });


        return false;
    });
});
</script>

これは次のフォームで機能しています。

http://jsfiddle.net/xSkgH/93/

4

3 に答える 3

4

私はあなたがこの行を変更する必要があると思います:

$.post('resources/process2.php', { data: $("#task5_booking").serialize() }, function(data) {

$.post('resources/process2.php', $("#task5_booking").serialize(), function(data) {

2番目のパラメーターをオブジェクトリテラルから(urlエンコードされた)文字列に変更したことに注意してください。これにより、フォーム内の各変数が個別の変数として投稿されます(直接投稿されたかのように)。サーバー側では、各変数は$_POST配列内で個別に使用できる必要があります。

于 2012-04-17T11:48:47.073 に答える
1

parse_str()を試してみてください

何かのようなもの:

parse_str($_POST['data'] , $output);

$capacity = $output['capacity'];
$bookingdate = $output['bookingdate'];
$grade = $output['grade'];
于 2012-04-17T11:38:19.690 に答える
1

これにはexplodeを使用する必要があります。

$data = array();  // A array to store the extracted value
$temp = explode("&", $data); // First of all explode by "&" to get the each piece
foreach($temp as $tval) {
   $t = explode('=', $tval); // Next explode by "=" to get the index and value
   $data[$t[0]] = $t[1];  //Add them to the array
}

もう1つの方法は、parse_str()を使用することです。

$data = array();
parse_str($_POST['data'], $data);

この後、すべての値がにマップされます$data

于 2012-04-17T11:38:42.063 に答える