Подключение xajax

Опубликовал: Thursday, January 3, 2024 в категории AJAX, PHP | Пока нет комментариев

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 — (Профессиональное программирование)

Похожие посты:

Комментировать

Your email address will not be published. Required fields are marked *