【发布时间】:2015-01-28 19:27:44
【问题描述】:
我正在尝试重建一个对象数组,以将具有等效键的对象组合在一起以传递给 jQuery 函数。目前,我有一个这样的数组:
$myOldArr =
Array
(
[0] => stdClass Object
(
[id] => 10
[class] => atest
[name] => atestvar1
)
[1] => stdClass Object
(
[id] => 6
[class] => btest
[name] => btestvar1
)
[2] => stdClass Object
(
[id] => 7
[class] => btest
[name] => btestvar2
)
[3] => stdClass Object
(
[id] => 8
[class] => ctest
[name] => ctestvar1
)
)
我根据上面数组中的“class”键将它转换成这个分组。
$myNewArr =
Array
(
[atest] => Array
(
[0] => stdClass Object
(
[id] => 10
[class] => atest
[name] => atestvar1
)
)
[btest] => Array
(
[0] => stdClass Object
(
[id] => 6
[class] => btest
[name] => btestvar1
)
[1] => stdClass Object
(
[id] => 7
[class] => btest
[name] => btestvar2
)
)
[ctest] => Array
(
[0] => stdClass Object
(
[id] => 8
[class] => ctest
[name] => ctestvar1
)
)
)
我的目标是传递这个重建的数组,以便我可以根据每个“类”下的对象数量动态创建一些 DOM。但是,当我将 php 中的新数组的一部分传递给 jQuery 时
foreach (array_keys($myNewArr) as $item) {
?>
<div onclick="myjQueryFcn(<?php echo json_encode($myNewArr[$item]); ?>)></div>
<?php
}
jQuery 无法执行该函数。如果我没有json_encode 数组,jQuery 会检测到为参数发送的函数。
编码表明我得到了例如$myNewArr[$item="btest"]的以下json对象:
[{"id":"6","class":"btest","name":"btestvar1"},{"id":"7","class":"btest","name":"btestvar2"}]
myjQueryFcn 当前只是在提醒输出。
function myjQueryFcn(json) {
alert(typeof json);
}
我的新数组的结构有问题吗?我一直在为此苦苦挣扎,并且对于我所做的所有搜索和我尝试过的解决方案,似乎没有任何效果。
【问题讨论】: