0

これは、json データを php ファイルに送信した jquery ajax 部分です。

$(function () {
 $('form').submit(function () {
   var fields = $(this).serializeArray();
   var ans_json = JSON.stringify(fields);
   console.log(ans_json);

   $.ajax({
     url: "results.php",
     type: "POST",
     data: ans_json,
     dataType: "json",
     success: function (result) {
       console.log(result);
     }
   });
   return false;
 });
});

今、phpページに送信されたこのjsonデータを使用したいのですが、どうすればいいですか? 私はこのようにしましたが、null を返します。

<?php
   echo json_decode('ans_json');
?>

答える必要がある10個の質問のセットがあります。3 つの質問に回答したので、以下の結果が得られました。これがコンソールに表示されたものです。

 [{"name":"answer_9","value":"a"},{"name":"answer_10","value":"a"}] quizzes.php:14

ヌル

4

2 に答える 2

2

パラメータを適切にエンコードすれば、サーバー側で JSON 文字列をデコードする必要はありません。

を使用.serialize()してフォームのシリアル化を行うことができ、送信する準備が整いました。

$(function () {
  $('form').submit(function () {
    var serialized = $(this).serialize();

    $.ajax({
      url: "results.php",
      type: "POST",
      data: serialized,
      ...
    });

    return false;
  });
});

パラメータは$_POST、通常の POST リクエストと同様に使用できます。例えば、

$ninth_answer = $_POST["answer_9"];
于 2013-01-13T11:51:55.490 に答える
1

POST 変数をデコードする必要があります。現在、有効な JSON ではない文字列のみをデコードしています。

<?php
$json_arr = json_decode($_POST['my_json'], true);
var_dump($json_arr);
echo "First name in json is:". $json_arr[0]['name'];
?>

次を反映するようにJavaScriptを編集します。これにより、jsonを値としてmy_jsonパラメーターに投稿します。これにより、PHP が $_POST を使用して簡単に受信できるようになります。

$.ajax({
 url: "results.php",
 type: "POST",
 data: {"my_json": ans_json},
 dataType: "json",
 success: function (result) {
   console.log(result);
 }
});

それらについて少し読むことをお勧めします:

http://api.jquery.com/jQuery.ajax/

http://ee1.php.net/manual/en/function.json-decode.php

于 2013-01-13T11:36:44.047 に答える