我有一个对象或数组,如下所示:“ [{},{},{},{},{},{},{},{},{\” subject \“:\” Math \“},{},{},{},{ },{},{},{},{},{},{},{},{},{},{},{},{},{},{\“学科\”:\”化学\”},{},{},{},{},{},{},{},{},{},{},{},{},{},{},{}] “
以及:[{},{},{},{},{},{},{},{},{“ subject”:“ Math”},{},{},{},{},{}, {},{},{},{},{},{},{},{},{},{},{},{},{“主体”:“化学”},{},{ },{},{},{},{},{},{},{},{},{},{},{},{},{}]
当我使用foreach循环对其进行迭代时,它显示“第11行的C:\ wamp64 \ www \ eschool \ cms \ admin \ scripts \ time-table-add-submit.php中为foreach()提供了无效的参数”可能是由于开头和结尾处的值为空。但我想以某种方式进行迭代。这是我的代码:JavaScript:
var timeTableSub = [
{"subject": timeTableSub1},
{"subject": timeTableSub2},
... Like Wise....
{"subject": timeTableSub42}
];
var jsonArray = JSON.stringify(timeTableSub);
$.ajax({
url: "scripts/time-table-add-submit.php",
type: "POST",
dataType: 'html',
data:{
'arrayList': jsonArray
},
success: function (data) {
data = $.trim(data);
$("#tempDiv").html(data);
}
});
PHP:
<?php
$arrayList = json_encode($_POST['arrayList'], TRUE);
echo $arrayList."<br>";
$newArray = json_decode($arrayList);
echo $newArray."<br>";
foreach ($newArray as $key => $value)
{
echo $key . " => " . $value . "<br>";
}
?>
您似乎要对数据进行两次字符串化,一次是在请求期间使用JSON.stringify在前端,一次是在通过再次编码对POST对象进行接收时。
删除任何一个都可以解决此问题。