我从AJAX请求中获取JSON响应,输出类似于此
{
"update":
[{
"selector":"#selectorname",
"attribute":"value",
"value":1
}],
"hide":[
"#tohideselector1",
"#tohideselector2",
"#tohideselector3"
],
"show":[
"#toshowselector1",
"#toshowselector2",
"#toshowselector3"
]
}
现在我需要数组键将它们发送到它们的特定功能,因为每个动作可以多次发生。我需要一个在PHP中看起来像这样的函数
foreach($data as $key=>$value) {
switch($key) {
case "update":
update(param1,param2,param3);
break;
case "hide":
hide(param1);
break;
case "show":
show(param1);
break;
}
}
如果您已经理解,我想说的是什么......解决方案是什么?
答案 0 :(得分:2)
你不需要jQuery。 jQuery为您提供了一个表示JSON对象的标准JavaScript对象。你想要的是微不足道的:
var key, value;
for (key in data) {
if (!Object.prototype.hasOwnProperty.call(data, key)) {
continue;
}
value = data[key];
switch (key) {
case 'update':
// etc.
}
}
答案 1 :(得分:0)
你可以使用jQuery的每个函数,js就是这样的:
$.each(data, function(key, value) {
if(key cond){
}
else if (key cond){
}
...
...
else {
}
});
答案 2 :(得分:0)
你几乎得到它,只需解码对象然后你就可以访问它。这不准确,你需要var_dump解码的json并进行一些调整,但这是基本的想法:
$data = json_decode($_POST["requestSent"]);
foreach($data as $key=>$value) {
switch($key) {
case "update":
update($value[0]->selector,$value[0]->attribute,$value[0]->value);
break;
case "hide":
/*pass params here*/
break;
case "show":
/*pass params here*/
break;
}
}