【发布时间】:2017-06-10 16:57:31
【问题描述】:
我正在尝试使用使用 JS 函数 JSON.stringify(objects) 构建的 JSON 字符串。在我工作的本地版本上,它正在工作,但在服务器上它会引发以下错误:
为 foreach 提供的参数无效
经过一番调查,$POST 表是空的。但在浏览器控制台中,数据是随查询一起发送的。
这里是请求的内容:
rencontres:[{"id":"1","m":"","f":"0-2","e":"","p":"","status":"3","st":false,"si":false,"se":false,"sp":false,"ss":false}]
这是$GET['rencontres']中包含的JSON字符串(由$request->get("rencontres")访问):
[{"id":"1","m":"","f":"0-2","e":"","p":"","status":"3","st":false,"si":false,"se":false,"sp":false,"ss":false}]
这似乎是正确的。
这里有一些 var_dump 结果: var_dump($renontres) 给出 [][]
var_dump($request->get("rencontres") gives also [][]
这是方法本身:
public function postSaveRencontre(Request $request){
$em = $this->getDoctrine()->getManager();
$rencontres = json_decode($request->get("rencontres"), true);
//log struff
foreach ($rencontres as $key => $r) {
//blablabla
}
//return statement
}
这里是 AJAX 语句(url 是正确的):
$.ajax({
type: "POST",
url:"url",
data: {rencontres:JSON.stringify(rencontres)},
success:function(data){
console.log("save performed");
}
});
【问题讨论】:
-
var_dump($rencontres)有没有给你线索? -
它给出“[ ][ ]”
-
在
foreach()语句之前转储变量$rencontres。也尝试删除stripcslashes()。 -
run
var_dump($request->get("rencontres"))这给了你什么? -
var_dump($rencontres)给你[ ][ ]吗?这很奇怪。