Подключение xajax
Xajax — это PHP-библиотека, которая отличается тем, что позволяет исполнять JavaScript на основе PHP-кода. Весь процесс состоит из двух PHP-классов и обработчика XML на JavaScript. В общем, на PHP сначала инициализируется объект
и объявляются функции, которые будут отвечать на AJAX-запрос. В этих функциях необходимо использовать объект, который и будет генерировать XML-ответ. Для скачивания библиотеки xajax заходим по адресу http://xajaxproject.org/en/download/ и нажимаем на ссылку xajax 0.5 standard. Скачиваем архив с библиотекой на компьютер (рис. 2.1).
Рис. 2.1. Страница скачивания библиотеки xajax
Распакуем архив в корневой каталог сайта. Листинг 2.4 содержит код, который необходимо внести в файл для подключения xajax.
Листинг 2.4
<html>
<head>
<?php
// подключение библиотеки
require_once ("xajax_core/xajax.inc.php");
// создать новый xajax-объект
$xajax = new xajax();
// регистрация функций
$xajax->register(XAJAX_FUNCTION,"Function1");
// разрешаем обрабатывать xajax асинхронные запросы
$xajax->processRequest();
function Function1()
{
$objResponse = new xajaxResponse();
// код
return $objResponse;
}
?>
<?php
echo $xajax->getJavascript( "" );
?>
</head>
<body>
</body>
</html>
Ясно видно, что объект xajax основной, в него регистрируются функции обработки, а xajaxResponse — вспомогательный, который генерирует XML, который потом распознается на уровне JavaScript и выполняет соответствующие действия. При вызове xajax-функций из JavaScript добавляется префикс xajax_:
<a ‘href=javascript:void();’ onclick=’xajax_Function1();’></a>
Методы объекта xajaxResponse
Объект xajaxResponse имеет следующие методы: assign; append; prepend; replace; remove; create; insert; insertafter; clear; createInput; insertInput; insertInputAfter; removeHandler; includeScript; script; addEvent; call; alert; redirect.
Рассмотрим подробнее каждый из этих методов.
ЗАМЕЧАНИЕ
На прилагаемом компакт-диске представлен Web-сайт — тренажер для изучения этих методов с просмотром результатов в визуальном режиме. Подробно работа тренажера будет рассмотрена в разд. 2.2.5.
Метод assign
Изменяет параметры HTML-элементов, таких как innerHTML, style и т. п.
$objResponse->assign($sTarget, $sAttribute, $sData) — заменяет значение
$sAttribute элемента $sTarget на $sData.
Примеры
// установить новое содержимое элемента с id=div1 — <b>New</b>
$objResponse->assign("div1","innerHtml","<b>New</b>");
// установить цвет текста красный в элементе с id=div1
$objResponse->assign("div1","style.color","red");
// скрыть элемент с id=div1
$objResponse->assign("div1","style.display","block");
Метод append
Изменяет параметры элементов, добавляя данные в конец.
$objResponse->append($sTarget, $sAttribute, $sData) — добавляет $sData
в конец значения атрибута $sAttribute элемента $sTarget.
Примеры
// добавить в конец содержимого элемента с id=div1 код HTML —
// <U>element</U>
$objResponse->append("div1","innerHtml","<U>element</U>");
// если HTML-код был <b>New</b>, то теперь будет –
// <b>New</b><U>element</U>
Метод prepend
Добавляет данные в начало.
$objResponse->prepend($sTarget, $sAttribute, $sData) — добавляет $sData
в начало значения атрибута $sAttribute элемента $sTarget.
Примеры
// добавить в начало содержимого элемента с id=div1 код HTML —
// <U>element</U>
$objResponse->append("div1","innerHtml","<U>element</U>");
// если HTML-код был <b>New</b>, то теперь будет –
// <U>element</U><b>New</b>
Метод replace
Заменяет в элементе одни на другие, как str_replace.
$objResponse->replace($sTarget, $sAttribute, $sSearch, $sData) — заме-
няет найденное по маске $sSearch значение атрибута $sAttribute элемента $sTarget
на $sData.
Примеры
// заменить в содержимом элемента с id=div1 код HTML —
// 1 на код 2<br>
$objResponse->replace("div1","innerHtml","1","2<br>");
// если HTML-код был <b>1234512345</b>, то теперь будет –
// <b>2<br>23452<br>2345</b>
// напоминает php функцию str_replace
Метод remove
Удаляет элемент.
$objResponse->remove($sTarget) — уничтожает элемент $sTarget.
Пример
// удалить элемент с id=div1
$objResponse->remove("div1");
Метод create
Создает элемент.
$objResponse->create($sParent, $sTag, $sId, $sType = "") — создает элемент $sTag с id — $sId, как потомок от $sParent с типом $sType.
Примеры
// создать элемент span с id=span1 в элементе с id=div1
$objResponse->create("div1","span","span1");
// если на странице был элемент div с id=div1
// <div id=div1></div> , то теперь будет
// <div id=div1><span id=span1></span></div>
Метод insert
Вставляет новый элемент.
$objResponse->insert($sBefore, $sTag, $sId) — вставляет элемент $sTag с
ID — $sId до элемента $sBefore.
Примеры
// создать элемент span с id=span1 до элемента с id=div1
$objResponse->create("div2","span","span1");
// если на странице был элемент div с id=div1
// а внутри него элемент div с id=div2
// <div id=div1><div id=div2></div></div> , то теперь будет
// <div id=div1><span id=span1></span><div id=div2></div></div>
Метод insertAfter
Добавляет элемент после заданного элемента.
$objResponse->insertAfter($sAfter, $sTag, $sId ) — вставляет элемент
$sTag с ID — $sId после элемента $sAfter.
Примеры
// создать элемент span с id=span1 после элемента с id=div1
$objResponse->create("div2","span","span1");
// если на странице был элемент div с id=div1
// а внутри него элемент div с id=div2
// <div id=div1><div id=div2></div></div> , то теперь будет
// <div id=div1><div id=div2><span id=span1></span></div></div>
Метод clear
Очищает содержимое элемента.
$objResponse->clear($sTarget, $sAttribute) — очищает значение атрибута
$sAttribute элемента $sTarget.
Примеры
// очищает содержимое элемента с id=div1
$objResponse->clear("div2","innerHTML");
// очищает содержимое свойства color элемента с id=div1
$objResponse->clear("div2","color");
Метод createInput
Создает элемент формы.
$objResponse->createInput($sParent, $sType, $sName, $sId) — создает элемент HTML-формы как дочерний элемент от элемента $sParent, с типом $sType, именем $sName и ID — $sId.
Пример
// создает в форме с id=form1 элемент input
// с id=input2 и name=input2
$objResponse->createInput("form1","input","input2","input2");
Метод insertInput
Создает элемент формы.
$objResponse->insertInput($sBefore, $sType, $sName, $sId) — создает элемент
HTML-формы до элемента $sBefore, с типом $sType, именем $sName и ID — $sId.
Примеры
// создает в форме элемент input
// с id=input2 и name=input2
// до элемента с id=input1
$objResponse->insertInput("input1","input","input2","input2");
Метод insertInputAfter
Создает элемент формы.
$objResponse->insertInputAfter($sAfter, $sType, $sName, $sId) — создает элемент HTML-формы после элемента $sAfter, с типом $sType, именем $sName и ID — $sId.
Пример
// создает в форме элемент input
// с id=input2 и name=input2
// после элемента с id=input1
$objResponse->insertInputAfter("input1","input","input2","input2");
Метод removeHandler
Удаление функции обработки событий.
$objResponse->removeHandler($sTarget, $sEvent, $sHandler) — удаляет
js-функцию $sHandler для обработки события $sEvent для элемента $sTarget.
Пример
// удаляет функцию fun_over для события onmouseover
// для элемента с id=div1
$objResponse->removeHandler("div1","onmouseover","fun_over");
Метод includeScript
Подключает внешний js-файл.
$objResponse->includeScript($sPath) — подключает внешний js-файл, путь к которому $sPath.
Пример
// подключает внешний js-файл
// чтобы, допустим, первая страница загружалась не слишком долго
// внешний js-файл загружаем не в начале, а только тогда,
// когда он будет использоваться
$objResponse->includeScript("js/jquery.fancybox-1.3.0.js");
Метод script
Добавляет прописанную вручную js-обработку.
$objResponse->script($sScript) — выполняет код JavaScript, содержащийся в $sScript.
Примеры
// выполнить js – выдать окно alert c сообщением Сообщение!!!
$objResponse->script("alert(‘Сообщение!!!’)");
// элемент с id=d1 в зону видимости страницы
$objResponse->script("document.getElementById(‘d1’).scrollIntoView();");
// установить цвет текста красный в элементе с id=div1
// (аналогично $objResponse->assign("d1","style.color","red");)
$objResponse->script("document.getElementById(‘d1′).style.color=’red’;");
Метод addEvent
Создает новый объект event.
$objResponse->event($sTarget, $sEvent, $sScript) — создает событие
$sEvent, привязывая его к элементу $sTarget и связывая с ним код $sScript.
Примеры
// создаем новые события для элемента с id=div1
// onmouseover – при наведении мыши на объект цвет элемента красный
// onmouseout – при наведении мыши на объект цвет элемента синий
$objResponse->event("div1","onmouseover","this.style.color=’red’");
$objResponse->event("div1","onmouseout","this.style.color=’blue’");
Метод call
Вызывает заданную js-функцию с заданными параметрами.
$objResponse->call($sFunc, $args,…) — вызывает js-функцию $sFunc с заданными параметрами $args.
Пример
// вызывает js-функцию с тремя аргументами my_function("div1",4,10);
$objResponse->сall("my_function", "div1",4, 10))
Метод alert
Создает оповещение.
$objResponse->alert($sMsg) — окно-предупреждение JavaScript c текстом
$sMsg.
Примеры
// выдать окно alert c сообщением Сообщение!!!
$objResponse->script("alert(‘Сообщение!!!’);");
Метод redirect
Создает перенаправление на другую страницу, возможно, через некоторое время.
$objResponse->redirect($sURL) — создает перенаправление на страницу
$sURL.
Примеры
// перенаправляет на другую страницу
$objResponse->redirect("http://www.site.ru/register.php");
Источник: Петин В. А., Сайт на AJAX под ключ. Готовое решение для интернет-магазина. — СПб.: БХВ-Петербург, 2011. — 432 с.: ил. + CD-ROM — (Профессиональное программирование)
Похожие посты:
- Что такое селекторы и как их правильно использовать (0)
- Задание фонового изображения для страницы с помощью CSS (0)
- Выбор единиц измерения размера шрифтов:пикселы, пункты, пики или что-то другое (0)
- Организация табличных данных:удобство доступа и наглядность (0)
- Создание таблицы стилей для формы с возможностью ввода данных, как в электронную таблицу (0)
- Создание цветного фона для заголовка (0)
- В каких случаях следует использовать классы, а в каких – идентификатор (0)