[英]How to get array back in php from ajax
我在 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 将这个数组恢复到 php 中。 这是我到目前为止所做的。
我只是将数组编码为 json 并使用json_encode();
将其保存在隐藏字段中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\\\"}\"
如何取回有效数组?
您在发送期间已将数组编码为 json,但未在后台 php 中解码。 试试这样..
PHP:
<?php
if($_GET['getArr']){
$getArr = $_GET['getArr'];
echo '<pre>';print_r(json_decode($getArr));
}
?>
希望这能解决你的问题。
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
});
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.