#ajax #codeigniter #jquery #codeigniter-2
#ajax #codeigniter #jquery #codeigniter-2
Вопрос:
Я хочу показать данные моих пользователей из моей базы данных mysql без перезагрузки страницы.
Я использую Codeigniter. У меня есть выпадающее меню, подобное следующему, — когда страница загружается, я хочу, чтобы она отображала все данные по умолчанию. Но когда любой пользователь выбирает любое имя, он запрашивает базу данных и сразу показывает результаты без перезагрузки страницы.
У меня уже есть контроллер, модель и представление для отображения всех данных из базы данных, но я не знаю, как заставить выпадающее меню работать после того, как пользователь выбрал значение, для извлечения данных из базы данных и немедленного отображения без перезагрузки страницы.
У меня есть некоторые базовые знания PHP, но я понятия не имею об AJAX. Не могли бы вы любезно привести мне пример или идею о том, как это сделать?
Я не ожидаю, что вы напишете код для меня, я просто прошу пример или руководство. 🙂
Заранее спасибо.
<form>
<select name="info">
<option value="">Select a person:</option>
<option value="11080101">John</option>
<option value="11080102">Bon Jovi</option>
</select>
</form>
Ответ №1:
Похоже, что то, к чему вы стремитесь, на самом деле это не вопрос, связанный с codeigniter, а скорее вопрос HTML, JQUERY.
Использование jQuery для обработки и фильтрации данных в Net-tuts показывает решение jquery для сортировки и фильтрации данных. Их решение основано на таблице, но там есть участники, поэтому модификация может заставить его делать то, что вы хотите.
Ответ №2:
ну, я могу дать вам представление о том, как вы можете это попробовать
- запуск события jquery при выборе пункта выпадающего меню. если вы понятия не имеете, как это сделать, попробуйте прочитать документацию jquery по использованию селекторов .
- как только у вас есть выбранный элемент, извлеките его значение и отправьте вызов ajax на свой path следующим образом (для jquery ajax посетите jqapi, там есть вся документация по функциям jquery ajax и его производным)
$.post('/user/data/' id , function(response) { console.log(response) })
или
$.post('/user/data/', 'id=' id , function(response) { console.log(response) })
- и теперь у вас есть ваши данные в reponse, поэтому вы можете делать с ними все, что пожелаете
Комментарии:
1. Плакат хочет получать данные, а не что-либо менять в базе данных. Другими словами, запрос GET был бы более подходящим. Кроме того, во втором примере вы создаете строку запроса вручную. В этом нет необходимости. Лучший способ сделать это так:
$.post('/user/data', {id: theId}, function(response) {console.log(response)});