У меня возникли проблемы с получением пользовательских форматированных данных JSON в dijit.form.FilteringSelect. Возможно, это то же самое для других типов полей выбора dijit.
Обновление:
Одно из различий при использовании FilteringSelect вместо ComboBox состоит в том, что ошибки проверки
Теперь это показано на элементе. Все входные данные возвращают всплывающую подсказку «неверное значение».
Вот пример JSON, который возвращается из базы данных через PHP, преобразованный из
массив результатов:
{"animals":[
{"gr_id":"1","gr_name":"Dog","gr_description":null},
{"gr_id":"4","gr_name":"Cat","gr_description":null}]}
Вот HTML-код для отображения поля со списком и определения магазина:
<div dojoType="dojox.data.QueryReadStore" url="getAnimals.php" jsId="animalStore">
</div>
<select dojoType="dijit.form.FilteringSelect" store="animalStore" searchAttr="gr_name">
</select>
Атрибут поиска обрабатывается правильно, и ответ выше отправляется обратно клиенту, но поле остается пустым.
Я не знаю, как сопоставить пользовательский ответ JSON с меткой (значение, отображаемое в качестве параметров и используемое для поиска: gr_name) и значением (значение, возвращаемое при submit: gr_id) поля выбора dijit (FilteringSelect).
Когда я искал примеры, это всегда работало как волшебство, но я думаю, это потому, что они используют структуру по умолчанию для данных json. Я даже не могу подтвердить это, потому что документация по этим функциям немного скудна.