PHP массив объектов в переменную javascript

Мне нужно преобразовать массив объектов php в переменную javascript, чтобы использовать ее в плагине easyautocomplete. Вот краткое изложение того, что я пытаюсь достичь:

var_dump PHP-объекта, возвращенного из базы данных:

array(223) {
[0]=>
object(stdClass)#5 (9) {
["id"]=>
string(2) "10"["no"]=>
string(3) "CN1"["name"]=>
string(10) "Cyclops"}
[1]=>
object(stdClass)#6 (9) {
["id"]=>
string(2) "11"["no"]=>
string(3) "CN2"["name"]=>
string(11) "Professor X"}
..
..

Требуемый формат JavaScript:

var characters = {

data: [
{"name": "Cyclops", "id": 1},
{"name": "Professor X", "id": 2}
],

getValue: "name",

list: {

onSelectItemEvent: function() {

var value = $("#character1").getSelectedItemData().id;

$("#character").val(value).trigger("change");
}
}
};

Что я пробовал:

var characters = <?php echo json_encode(['data' => $chars]); ?>;

Результат:

var characters = {

"data": [
{"id":"10","no":"CN1","name":"Cyclops"},
{"id":"11","no":"CN2","name":"Professor X"}

]};

Кажется, я почти получил нужный мне результат, но я не знаю, как добавить остальные свойства, начиная с getValue : "name" list: { ..... к символьной переменной.

Кроме того, кажется, что полученная переменная имеет двойные кавычки вокруг атрибута «data», но я не уверен, что это вызовет проблему.

Ссылка на пример, который я пытаюсь реализовать: Ссылка на сайт

3

Решение

Поведение на стороне клиента должно быть на стороне клиента, нет необходимости добавлять что-либо к data, просто укажите необходимый набор данных, все остальные поля могут быть определены в js:

var characters = {
data: <?=json_encode($chars)?>,
getValue: "name",
list: {
onSelectItemEvent: function() {
var value = $("#character1").getSelectedItemData().id;
$("#character").val(value).trigger("change");
}
}
};
0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]