@ross_viktor

Как можно получить данные из бд в ajax в шаблоне smarty?

здравствуйте, у меня есть такой цикл в шаблоне smarty

<select name="qs_category" id="qs_category">
				<option value="">Категория</option>
				{foreach from=$categories item=v name=cat}
				<option value="{$v.id}" >{$v.str}{$v.name}</option>
				{/foreach}
			</select>


у кого-нибудь есть готовый код который принял бы эти значения не в select, а получал в input как-то через Ajax прямо из бд?я не знаю как это реализовать, поэтому возможно уже есть что-то готовое, в интернете искал ничего рабочего нет.
  • Вопрос задан
  • 49 просмотров
Пригласить эксперта
Ответы на вопрос 1
glaphire
@glaphire Куратор тега PHP
PHP developer
Опишу в общих чертах, потому что иначе надо воспроизводить весь проект:
1) Обозвите будущий input для автокомплита какой-то айдишкой, нп.
<input id="first-level-category-autocomplete" type="text">

2) Вешаете на нее jQuery UI autocomplete (в примере для инпута #users cудя по всему тоже он), пример вменяемой js-ки тут, там ajax делается в фоне за вас, нужно только этот код правильно в smarty шаблон добавить и респонс от бекенда правильный слать
3) на обработчике, который указали для автокомплита, пишете свой метод getAutocomplete для категорий (select *** where category like '$term%' ***), формируете на php ответ строкой по формату
[{label:"label1", value: "value1"},{label:"labelN", value: "valueN"}]
.
4) Проверяете, что все ок с выводом значений для автокомплита на фронтенде (console.log и alert в помощь)
5) в событии select автокомплита описываете, что хотите делать после того, как юзер выбрал категорию из предлагаемых и она подставилась в инпут. Скорее всего здесь захотите ajax-ом подгрузить дочерние категории. Пишете внутри события select обычный ajax запрос на урл, в котором будете находить дочерние категории, формировать html и отдавать его на фронт, получать на фронте в обработчике success и делать append к нужному элементу верстки.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы