5

Сайт-
визитка:

Сайт-визитка – это небольшой по размеру сайт (объем до 10 страниц), на котором размещается информация например о вашей компании.

0

Корпоративный сайт:

Это, веб-интерфейс определенной компании, который создан для доступа сотрудника к корпоративным данным и приложениям.

8

Интернет-магазин:

сайт, позволяет пользователям онлайн, в своём браузере, сформировать заказ на покупку, выбрать способ оплаты и доставки заказа.

Использование jQuery и Ajax в CodeIgniter

В этом уроке шаг за шагом я расскажу Вам, как объединить JavaScript библиотеку jQuery и PHP фреймворки CodeIgniter. В этом уроке, написанный нами скрипт будет находить идентификатор ID и передавать его на сервер для дальнейшей обработки.

ШАГ №1

Начнем. Предположим, что у нас есть контейнер Div с идентификатором content, в котором будут отображаться полученные данные с сервера. Для выполнения этого действия мы вызовем JavaScript функцию записи параметра ID.

Первое, что нам необходимо сделать, это убедится, что у нас подключена библиотека jQuery, а также создана функция для Ajax запроса.

<script language="javascript" src="/path_to_jquery/jquery.js" ></script> <script language="javascript"> function get_record_id(record_id) { } </script>

ШАГ №2

Далее мы будем использовать jQuery функцию загрузки, в которую мы поместим наш идентификатор content.

function get_record_id(record_id) { $(‘#content’).load() }

ШАГ №3

Функция загрузки принимает три аргумента: HTTP запрос, способ загрузки, а также функция обработки вызова. Выглядит это примерно так:

function get_record_id(record_id) { $(‘#content’).load(/controller/method,p,function(str){ }); }

Давайте немного поговорим об этой функции. CodeIgniter по имени контроллера создает URL адрес, а затем функцию внутри класса контроллера, который будет обрабатывать запрос. Если Ваш сервер не поддерживает mod-rewrite, вам необходимо будет с начала добавить index.php. Значение str внутри функции обратного вызова является результатом работы Ajax запроса. Он имеет очень большой смысл при использовании функции .load, еще этот запрос нам пригодится при использовании других функций jQuery и Ajax, $.post и $.get, которые говорят сами за себя.

ШАГ №4

var p = {}; //экземпляр масива p[record_id] = record_id //присваивает значение record_id переменной.

Вот и все что нам необходимо было сделать. Полная функция выглядит следующим образом:

function get_record_id(record_id) { var p = {}; p[record_id] = record_id $(‘#content’).load(/controller/method,p,function(str){ }); }

ШАГ №5

На стороне CodeIgniter у нас есть контроллер и метод загрузки, который выглядит примерно так:

class Controller { function Controller() { parent::CI; } function method() { } }

Важной частью является функция method(), поскольку она будет содержать часть.

ШАГ №6

Первое, что нам необходимо сделать в CodeIgniter, это получить значение объекта запроса. Это достаточно просто выполнить с помощью $_POST [record_id]. Также Вы можете загрузить копию базы данных, чтобы могли получать записи из нее. Таким образом, загрузите библиотеку базы данных, а затем загрузите конкретную модель. Затем мы хотим отправить идентификатор записи в базу данных, получить итоговые данные, и передать его обратно в функцию.

function method() { $record_id = $_POST[record_id]; //присваивает идентификатор записи $this->load->library(database); //загружает запись базы данных для подключения к базе данных $this->load->model(records); //внутри папки ystem/application/models создаются модели на основе процедуры. $results = $this->records->get_record($record_id); //получаем записи из базы данных }

ШАГ №7

В данный момент нам необходимо перейти к файлу records.php в папке model. Поскольку CodeIgniter использует структуру Модель-Просмотр-Структура, деятельность базы данных, процесс обработки сервера. CodeIgniter это должен делать самостоятельно без Вашей помощи.

Внутри файла records.php необходимо создать метод, который будет называться get_record. Для записи мы будем использовать первичный ключ ID, положим полученные данные в массив и отправим их обратно в контейнер.

function get_record($record_id) { $this->db->where(ID,$record_id); //ишем строку в которой совпадает ID $query = $this->db->get(record_table); //получаем данные, которые присваиваем переменной $query $row = $query->row(); //получаем первую строку в результате. В этом случае только одна строка никогда не будет возвращена. $results[record][$row->ID][name] = $row->name; //создаем мгновенный массив, содержащий возвращенные значения на основе ключа return $results; //отправляем отчет на контроллер }

Деликатной часть этого кода является массив. Сейчас эта часть кода Вам может показаться сложной, но скоро вы увидите, как он становится легче.

ШАГ №8

Поскольку мы побывали в контроллере, у нам имеется еще одна линия, которую необходимо добавить в функцию method(). Сейчас функция должна выглядеть следующим образом:

function method() { $record_id = $_POST[record_id]; //присваивает идентификатор записи $this->load->library(database); //загружает запись базы данных для подключения к базе данных $this->load->model(records); //внутри папки ystem/application/models создаются модели на основе процедуры. $results = $this->records->get_record($record_id); //получаем записи из базы данных $this->load->view(AJAX_record,$results); }

ШАГ №9

Файл AJAX_record.php должен находиться в папке system/application/views. Имейте в виду, что когда Вы передаете массив для просмотра, он будет открыт в папке views. Таким образом, путь к файлу записи в настоявшее время $record, вместо $results[record]. Кроме того, внутри будет стандартная HTML разметка, что-то вроде этого:

< ?php foreach($record as $id=>$value) { ?> Имя, связанное с этим запись:: < ?php print $value[name]; ?> < ?php } ?>

Выходом будет PHP запрос, что загружается в контейнер DIV с идентификатором content. CodeIgniter и jQuery делает данную динамическую загрузку легко с помощью Ajax.

На этом все. Спасибо за внимание.

Comments are closed.