Всем доброго времени суток. Подскажите пожалуйста как решить следующую задачу. Столкнулся с extjs 5.1, ранее не работал с ним.
Вопрос в следующем есть такой интерфейс:
Реализовываю поиск учеников через AJAX. Есть такой код:
Ext.Ajax.request({
url: '/admin/learner/getLearnerBySearch',
params: {
search: inputSearch.rawValue
},
waitMsg: 'Загрузка...',
success: function(data) {
//????.html(data.responseText); Как тут быть?
}
});
Данным кодом я отдаю значение поиска в контроллер, вытягиваю запросом нужных людей в формате JSON получаю такую строку:
[{
"id": 16,
"fio": "\u041a\u043b\u0438\u043c\u043e\u0432\u0430 \u0412\u0430\u043b\u0435\u0440\u0438\u044f",
"email": "ms.klg4545453@mail.ru",
"phone": "+7(920)31445459",
"group": "244",
"block": 0
}]
Теперь вопрос, в какой элемент в extjs вставить эту строку в success, чтоб появились в окошке представленном выше те записи, которые пришли из контроллера и все правильно отработало.
Вам не надо делать Ext.Ajax.request запрос для Grid. У него есть Store для этого.
В обработчике поиска делаете примерно так:
grig.getStore().addFilter({property: 'any', value: inputSearch.rawValue, operator: 'like'});
grid.getStore().loadPage(1); // если autoLoad: false
У store для этого должен быть конфиг remoteFilter: true.
Метод addFilter: https://docs.sencha.com/extjs/5.1.3/api/Ext.data.Store.html#method-addFilter
В результате Store будет загружаться с сервера с параметром:
filter:[{"property":"any","value":"keyword","operator":"like"}]
Который уже на сервере разберете и отфильтруете.
Но можно и просто добавить параметр к загрузке:
grid.getStore().getProxy().setExtraParam('search', inputSearch.rawValue);
grid.getStore().loadPage(1);
Тогда на сервер улетит запрос с параметром: ?search=...
Как развивать веб-проекты в 2026 году: технологии, контент E-E-A-T и факторы доверия
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники