仅适用于多年后可能仍然来到这里并正在寻找相同错误的人(例如今天的我 :))。请注意 kbrin80 的评论,他说控制台输出状态为“没有 [][id] 这样的元素”——这是提示——至少对我来说是这样。例如我的代码看起来如何:
<?php
$result = $database->select('table', ['colums'], ['id' => $value]);
$json = json_encode($result);
echo $json;
//echoes like: [{id=>value}]
//--> notice the outer pair of brackets, that's an array, you want to get rid of them!
?>
根据脚本
<script type="text/javascript">
jQuery(document).ready(function(){
$('.populate').populate(<?php echo $json; ?>, {debug: 1});
});
</script>
这在第一个地方看起来很棒,但发生的事情是我忘记了我的 DB-Framework 返回一个包含结果数组的数组 - 即使只有一行返回 - 仍然需要选择这一行通过获得 $redsult[0]。好吧,然后这个数组被转换为 json(通过 {} 周围的 [ ] 可见并提供给 populate jquery - 正如我们所知,这不起作用,因为在第一个点 populate 需要 {id=>value} 而不是 [ {id=>value}] (然后 {} 中的数组用于多选值)所以你想要做的是找出你想要的值在你的数据库结果数组中的位置,然后将它传递到 json编码器,然后进入填充。像这样:
$result = $database->select('table', ['colums'], ['id' => $value]);
$json = json_encode($result[0]);
echo $json;
//echos like: {id=>value} , you want that to pass through populate correctly