1

jQuery とjquery-jsonを使用してデータを PHP スクリプトに投稿しています。

       $.post('<?php echo url_for('/ajax.php'); ?>', 'data=' + $.toJSON(order), function (response) {

                if (response == "success") {
                    $("#respond").html('<div class="success">Item Saved!</div>').hide().fadeIn(1000);
                    setTimeout(function () {
                        $('#respond').fadeOut(1000);
                    }, 2000);
                }
         })

console.log(order) を実行すると、次の JOSN が得られます。

{"details":[{"template_id":"25","font_size":"22"}]}

私の ajax.php ファイルには次のものがあります。

$data = json_decode($_POST["data"]);
var_dump($data);exit;

「NULL」を返す

しかし、次のコードがある場合:

$data = $_POST["data"];
var_dump($data);exit;

戻り値:

string(61) "{\"details\":[{\"template_id\":\"25\",\"font_size\":\"26\"}]}"

逃げられたのには何か理由がありますか?

これをデコードする最も簡単な方法は何ですか?

ありがとう

4

2 に答える 2

1

magic_quotes_gpc投稿変数にスラッシュを追加しているphp.iniまたは.htaccessファイルで無効にする必要がある場合があります。

stripslashesまたは、次のように$_POST['data']を呼び出すこともできます。

$data = json_decode(stripslashes($_POST["data"]));
于 2013-01-23T21:28:49.090 に答える
0

ajax 呼び出しに dataType: 'json' を追加する必要があります。

$.ajax({
    url: url,
    type: 'post',
    dataType: 'json',
    data: $.toJSON(order),
    async: true,
    success: function (data) {

      if (data.response) {
        $("#respond").html('<div class="success">Item Saved </div>').hide().fadeIn(1000);
                    setTimeout(function () {
                        $('#respond').fadeOut(1000);
                    }, 2000);

      }

    }

});
于 2013-01-23T21:47:18.637 に答える