Вызов функции JavaScript из контроллера кода - PullRequest
0 голосов
/ 03 мая 2011

Я занимаюсь разработкой сайта с использованием codeigniter. У меня есть форма, которая содержит кнопку добавления и текстовое поле. как только пользователь вводит данные, я должен проверить, существуют ли они в базе данных, если да, сгенерировать динамическое текстовое поле на странице, чтобы предупредить пользователя. Я написал Javascript для создания динамического текстового поля. Мой вопрос, как проверить в базе данных ??? Как вызвать контроллер из JavaScript или вызвать функцию JavaScript из контроллера ???

Ответы [ 2 ]

6 голосов
/ 03 мая 2011

Это на самом деле намного проще, чем вы ожидаете ... и вы начнете использовать его повсюду в своих разработках, как только увидите, как это здорово!

Итак, во-первых, мы собираемся использовать jQuery'sвстроенная функция POST.

Создайте функцию в вашем контроллере, к которой вы хотите получить доступ, я предлагаю префикс имени функции с помощью «ajax _»

Итак, вот пример функции контроллера:

function ajax_lookUpUsername(){
    $username = $this->input->post('username');
    $this->db->where('username', $username);
    $query = $this->db->get('accounts');
    if ($query->num_rows() > 0){
       echo 0;
    } else {
       echo 1;
    }
}

и вот ваша простая функция javascript onclick:

function lookUpUsername(name){
    $.post( 
        'http://yourwebsite/controller/ajax_lookUpUsername',
         { username: name },
         function(response) {  
            if (response == 1) {
               alert('username available');
            } else {
               alert('username taken');
            }
         }  
    );
}

второй параметр { username: name } - это то место, куда пойдут ваши значения поста, здесь термин «имя пользователя» - это ключ, имяэто передаваемое значение. Так что это пара ключ-значение post, которая обычно отправляется с сообщением post.

Переменная response, передаваемая в функцию обратного вызова, является эхом, возвращаемым вашим контроллером.,Общение стало чрезвычайно простым.

Простота удивительна, хотя я имел дело только с php, возвращающим 0 или 1, вы можете возвращать очень продвинутые объекты json, которыми вы можете управлять всей фронт-программой.

Для получения более сложных ответов вы можете повторить из массива вашего контроллера:

echo json_encode($array_of_data); 

, и это вернет вам идеальный набор данных json, который вы можете использовать с любым объектно-ориентированным подходом.Я использую этот повсюду, вы тоже скоро будете уверены:)

Удачи, мужик!Не стесняйтесь обращаться с любыми вопросами о расширении ответов после простого 0 или 1 эхо

0 голосов
/ 03 мая 2011

Вы можете сделать это, сделав ajax-вызов на страницу php на сервере, которая проверяет, существуют ли данные в БД. Если вы используете jquery, вы можете сделать это более простым способом, здесь вы можете найти очень хорошие примеры: http://net.tutsplus.com/tutorials/javascript-ajax/5-ways-to-make-ajax-calls-with-jquery/

Если вы этого не сделаете, вы все равно можете сделать это, добавив еще несколько строк кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...