Только для людей, которые, вероятно, все еще приходят сюда спустя годы и ищут ту же ошибку (как я сегодня :)). Обратите внимание на комментарий 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 (видимый [] вокруг {} и переданный в заполненный jquery - который, как мы знаем, не работает, потому что в первом месте заполнение ожидает {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