ВведениеxAjax - это php библиотека, которая отличается тем, что позволяет исполнять javascript на основе php-кода. Предком xAjax можно назвать RJX из ruby, а конкурирующими технологиями - projax, sajax, jQuery-PHP, Helma. Весь процесс состоит из двух php классов и обработчика xml на javascript. В общем - на php сначала инициализируется объект и объявляются функции которые будут отвечать на ajax-запрос. В этих функциях необходимо использовать объект, который и будет генерировать xml-ответ.
ПримерВ данном случае надо сделать так, что в html виде есть два поля, при изменении которых надо ajax-ом проверить равны ли они. Для этого делаем форму, делаем два поля и ставим на форму onchange event:
Код
<form id=formid onchange="xajax_processFormData(xajax.getFormValues('formid'));">
input type='text' name='pass'>
input type='text' name='pass2'>
</form>
Дальше, на уровне обработки наша платформа посторена на классах и за показ этой страницы отвечает public функция. Это надо учитывать, потому что xajax делает запрос по тому же адрессу где мы находимся, просто добавляет POST данные, по которым объект узнаёт надо ли ему генерировать XML ответ или нет.
Код
class someclass(){
function public(){
$xajax = new xajax();
//будучи внутри объекта вызов внутренней функции идёт с указателем на данный объект $xajax->registerFunction(array("processFormData",&$this,"processFormData"));
$xajax->processRequests(); //функция для конвертированияecho $xajax->getJavascript( "/path/to/xajaxJs/" );
}
function processFormData($arrFormData){
$objResponse = new xajaxResponse();
if ($arrFormData['pass']<>$arrFormData['pass2'])
$objResponse->addAssign("str_error","innerHTML", 'Passwords do not match');
}
}
Ясно видно что xajax объект основной, в него регистрируются функции обработки, а xajaxResponse вспомогательный, который генерирует XML, который потом распознаётся на уровне javascript и выполняет соответсвующие действия.
Возможности
xajaxResponse объект расширяем и уже готовится версия 0.5, а пока он позволяет:
* Работу с элементами:
o assign изменяет параметры html-элементов, будь то innerHTML, style и тп.
o append также изменяет параметры элементов, добавляя в конец данные
o prepend добавляет данные в начало
o replace как вы догадались - заменяет в элементе одни на другие, как str_replace
o remove удаляет элемент
o create создаёт элемент
o insert вставляет новый элемент
o insertafter добавляет после заданного элемента
o clear очищает содержимое элемента
* Работу с input-полями:
o createInput
o insertInput
o insertInputAfter
* Особые процессы:
o removeHandler
o includeScript подключает внешний js-файл
o script добавляет прописанные вручную js-обработку
o addEvent создаёт новый event
o call вызывает заданную js-функцию с заданными параметрами
o alert создаёт оповещение
o redirect создаёт перенаправление на другую страницу, возможно через некоторое время
После длительного использования xajax, могу с уверенностью сказать что это зло. Господа - разделяйте логику клиентской области от серверной, иначе не напасётесь запросов и других запутаете
Читайте так-же:
* jQuery-PHP
* Helma - и снова серверный javascript
Источник