试图通过stringify将数组传递给php时遇到麻烦

时间:2011-09-17 19:17:57

标签: php ajax

我无法弄清楚为什么这不起作用,请帮助!!我刚收到消息“decoding =”

mydata = JSON.stringify(array_str_idnum);

$.ajax({
type:           'post',
cache:          false,
url:            'parser.php',
data:           mydata,
datatype:       'json',
success: function(msg){
         $("#formstatus").ajaxComplete(function(){$(this).html(msg)});
           }        
});

<?php

// decode JSON string to PHP object
$decoded = json_decode($_POST['myJson'],true);

echo "decoded =";
echo $decoded;

?>

1 个答案:

答案 0 :(得分:2)

@Reanimation所示,您需要发送包含JSON数据的参数。我建议采用更多JavaScript方式:

$.ajax({
    type: 'post',
    cache: false,
    url: 'parser.php',
    data: {'myJson': mydata},
    datatype: 'json',
    success: function(msg){
            $("#formstatus").ajaxComplete(function(){$(this).html(msg)});
    }        
});

另一件事是$decoded实际上只要原始array_str_idnum是数组就会包含数组,因此echo $decoded会输出Array()。另请注意,json_decode的第二个参数是将对象作为关联数组返回。