Использование 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.

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

Просмотров: 6102      Опубликовал: Евгений Фединчик      Дата: 19.05.2010 18:01:13
  • Понравился урок? Добавьте его к себе в закладки.

    Последние уроки категории:

    Сокращение PHP кода

    Вы задумывались когда — нибудь о том, что лишний и бесполезный код убивает ваше время разработки приложения/сайта. Хотя это и кажется мелочью, но когда такой мелочи становится много, то время, потраченное впустую, становится ценным. И так давайте посмотрим, что можно и нужно сокращать...

    Видимость переменных в PHP

    В данном уроке рассматривается область видимости переменных PHP. Объясняется различие локальной и глобальной области видимости, показывается как получить доступ к глобальным переменным внутри функции, как работать с суперглобалами и создавать статические переменные.

    Как читать Rss ленты?

    Читалки и агрегаторы RSS используются для доступа, чтения и управления периодически-обновляемыми лентами RSS (или Atom), которые генерируются веб-сайтами. Эти ленты предоставляют доступ к последним материалам с этих сайтов.

    Установка и настройка PHP+Apache

    В этом уроке хотелось бы поднять очень интересную тему – Установка и настройка веб сервера PHP5 + Apache. В интернете довольно много различных инструкций по данной теме, но только вот в основном это копипаст, а не инструкция для человека, я же постараюсь объяснить все намного проще – на пальцах. Причина для установки локального вебсервера довольно много, например скорость выполнения и отладки скриптов, простота загрузки и модернизации контента и еще много чего.

    Как выбрать фреймворк

    Так уж повелось, что лень – это двигатель прогресса и как бы странно это не звучало, все те блага цивилизации, которые мы имеем сейчас были сделаны в первую очередь для нашего комфорта. Так и программисты чтобы облегчить себе жизнь и тем самым получить возможность создавать более сложные проекты за менее долгое время придумали сделать себе фреймворки.

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

    • Осталось: 1000 символов.
      Сохранить комментарий Отправка комментария
    lessons
    downloads
    search
    hosting

    Ищите хороший и не дорогой хостинг?

    Хостинг avahost.ua
    VPS VDS - виртуальный выделенный сервер
    sistems
    RBK Money

    Обменник.ws
    Статистика HitUa