我在php中有这样的数组:
Array
(
[week] => 15
[showing] => present
[ignore_team_id] => Array
(
[0] => 362
[1] => 343
[2] => 352
[3] => 331
)
[event_pasted_team_id] => Array
(
)
[old_data] => old_data
)
我希望从ajax中获取这个数组。 这就是我到目前为止所做的。
我只是将数组编码为json并使用json_encode();
<input id='myArray' type='hidden' name="myArray" value='<?php echo json_encode($myArray);?>' />
在javascript中:
function ajaxloadPlage(outputId,dataTransfer){
myArrayVal = jQuery('#myArray').val();
strify = JSON.stringify(myArrayVal);
jQuery.get( myapp.ajaxurl+'?'+dataTransfer,{action:'getPlayerRaterData','getArr':strify}, function( data ) {
//business login goes here
});
}
回到PHP:
if($_GET['getArr']){
$getArr = $_GET['getArr'];
echo '<pre>';print_r($getArr);
}
它的印刷品如下:
\"{\\\"week\\\":15,\\\"showing\\\":\\\"present\\\",\\\"ignore_team_id\\\":[362,343,352,331],\\\"event_pasted_team_id\\\":[],\\\"old_data\\\":\\\"old_data\\\"}\"
如何获取有效数组?
答案 0 :(得分:0)
你在发送过程中已经在json中对数组进行了编码,但是在后面的php中没有解码。 试试这个......
PHP:
<?php
if($_GET['getArr']){
$getArr = $_GET['getArr'];
echo '<pre>';print_r(json_decode($getArr));
}
?>
希望这能解决你的问题。
答案 1 :(得分:0)
myArrayVal
已经是JSON字符串,您不需要致电JSON.stringify
。您应该调用JSON.parse()
将其转换为对象。然后$.get()
会对对象进行URL编码,PHP会在设置$_GET['getArr']
时对其进行解码。
function ajaxloadPlage(outputId,dataTransfer){
myArrayVal = jQuery('#myArray').val();
myArray = JSON.parse(myArrayVal);
jQuery.get( myapp.ajaxurl+'?'+dataTransfer,{action:'getPlayerRaterData','getArr':myArray}, function( data ) {
//business login goes here
});
}