Как отобразить результат запроса без перезагрузки страницы?

#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:

ну, я могу дать вам представление о том, как вы можете это попробовать

  1. запуск события jquery при выборе пункта выпадающего меню. если вы понятия не имеете, как это сделать, попробуйте прочитать документацию jquery по использованию селекторов .
  2. как только у вас есть выбранный элемент, извлеките его значение и отправьте вызов 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)
    })
     
  3. и теперь у вас есть ваши данные в reponse, поэтому вы можете делать с ними все, что пожелаете

Комментарии:

1. Плакат хочет получать данные, а не что-либо менять в базе данных. Другими словами, запрос GET был бы более подходящим. Кроме того, во втором примере вы создаете строку запроса вручную. В этом нет необходимости. Лучший способ сделать это так: $.post('/user/data', {id: theId}, function(response) {console.log(response)});