Главная страница Мой профиль Регистрация Выход Вход
Программеры на грани
Четверг
16.5.2024
16:33
Приветствую Вас Гость | RSS ВходРегистрацияГлавная страница
Меню сайта
Категории каталога
Веб программирование с использовани [1]
Наш опрос
Чего не хватате на сайте?
Всего ответов: 24
Начало » Статьи » Programming » Веб программирование с использовани

XAJAX
Взять библиотеку можно тут. Библиотека очень простая в использовании, весь код на 90% состоит из кода php и для работы нужно всего-лишь прописать 10 строчек кода и мы получим готовую страничку.
<?php
ini_set('display_errors', 'On');
/* Включаем библиотеку  xajax */
require ('xajax.inc.php');
function processForm($aFormData)  { 
/* Эта функция обрабатывает форму.
   Обычно через формы отправляется гораздо больше данных,
   но для демонстрационного примера
   мы сократили их количество */
if(($aFormData['firstname'])&&($aFormData['lastname'])&&($aFormData['email']))
{
    $sOut = "<h2>Спасибо за заполнение вами формы!</h2>";
    $sOut .= "<p>Вы ввели следующие данные: </p>";
    $sOut .= "<ul>";
    $sOut .= "<li>Имя: <strong>".$aFormData['firstname']."</strong></li>";
    $sOut .= "<li>Фамилия: <strong>".$aFormData['lastname']."</strong></li>";
    $sOut .= "<li>Email: <strong>".$aFormData['email']."</strong></li>";
    $sOut .= "</ul>";
    $sOut .= "<p>Ваша форма была отправлена посредством Ajax.</p>";
}
else
{
$sOut .= "<form id=\"myform\" action=\"test2.php\" method=\"post\" onsubmit=\"xajax_processForm(xajax.getFormValues('myform')); return false;\">
<table border=\"0\">
<tr>
<td>First name:</td><td><input autocomplete=\"off\" type=\"text\" class=\"textbox\" name=\"firstname\" id=\"firstname\" value=\"".$aFormData['firstname']."\" />";
if(!$aFormData['firstname'])$sOut .= "<font color=red>*</font>";
$sOut .="</td>
</tr>
<tr>
<td>Last name:</td><td><input autocomplete=\"off\" type=\"text\" class=\"textbox\" name=\"lastname\" id=\"lastname\" value=\"".$aFormData['lastname']."\" />";
if(!$aFormData['lastname'])$sOut .= "<font color=red>*</font>";
$sOut .="</td>
</tr>
<tr>
<td>Email:</td><td><input autocomplete=\"off\" type=\"text\" class=\"textbox\" name=\"email\" id=\"email\" value=\"".$aFormData['email']."\" />";
if(!$aFormData['email'])$sOut .= "<font color=red>*</font>";
$sOut .="</td>
</tr>
<tr>
<td>&nbsp;</td><td><input type=\"submit\" class=\"button\" value=\"Отправить\"/></td>
</tr>
<tr>
<td>&nbsp;</td><td><a href=# onmouseover=\"xajax_processForm(xajax.getFormValues('myform')); return false;\">test</a></td>
</tr>
</table>
</form><br><font color=red>*Не все поля заполнены</font>";
}
/* создаем экземпляр класса xajaxResponse */     
    $objResponse = new xajaxResponse();
  
/* Устанавливваем объект xajaxResponse для обновления элемента HTML, с ID = 'theform' */
   
    $objResponse->addAssign("theform", "innerHTML", $sOut); 
   
/* возвращаем результат функции */ 
 // for(;;)  ;
    return $objResponse->getXML();
}
/* создаем экземпляр класса xajax */
$objAjax = new xajax();
# ответ в кодировке вынь-1251
$objAjax->setCharEncoding("windows-1251");
/* регистрируем функцию processForm для объекта xajax */
$objAjax->registerFunction('processForm');
/* обрабатываем запрос */
$objAjax->processRequests();

?>
<html>
<head>
printJavascript(''); ?>
<script type="text/javascript">
        <!--
            xajax.loadingFunction = 
                function(){xajax.$('loadingMessage').style.display='block';};
            function hideLoadingMessage()
            {
                xajax.$('loadingMessage').style.display = 'none';
            }
            xajax.doneLoadingFunction = hideLoadingMessage;
        // --></script>
<script type="text/javascript">
function signup(){
        <!--
            //$objAjax.$('submitButton').disabled=true;
            //$objAjax.$('submitButton').value='Processing...';
            xajax_processForm(xajax.getFormValues('myform'));
     return false;
            }
        // --></script>
 
</script>
</head><body>
<h1>Пример 3: обработка данных формы без перезагрузки страницы</h1>
<p>Для того чтобы отправка формы произошла без перезагрузки страницы нужно чтобы был включен javascript.</p>
<p>Этот пример будет работать даже если отключен javascript. Вы можете проверить это отключив javascript.</p>
<div id="theform">
<!-- Мы прерываем отправку формы если включен javascript, и вызываем функцию  'processForm()'. Посредством функции 'xajax.getFormValues()' мы можем отправить массив данных формы на сервер. Эта функция идет в стандартной поставке xajax.
Замечание: свойство action установлено на скрипт (processform.php) однако он не выполняется если включен javascript. -->
    
<form id="myform" action="test3.php" method="post" onsubmit="xajax_processForm(xajax.getFormValues('myform'));return false;">
<table border="0">
<tr>
<td>First name:</td><td><input autocomplete="off" type="text" class="textbox" name="firstname" id="firstname" /></td>
</tr>
<tr>
<td>Last name:</td><td><input autocomplete="off" type="text" class="textbox" name="lastname" id="lastname" /></td>
</tr>
<tr>
<td>Email:</td><td><input autocomplete="off" type="text" class="textbox" name="email" id="email" /></td>
</tr>
<tr>
<td>&nbsp;</td><td><input type="submit" class="button" value="Отправить"/ id="submitButton"/></td>
</tr>
</table>
</form>
</div>
<div id="loadingMessage" style="font-size: 22px; display: none;">
Подождите идет обработка...
<img src="ajax-1144705889_i_5815_full.gif" />
</div>
 
</body></html>
Вот простой пример заполнения формы. Как видно здесь идет html код и одна функция обработки на php.
Для xajax нужно подключить библиотеку к страничке
require ('xajax.inc.php');
создать объект xajax
$objAjax = new xajax();
установить кодировку
$objAjax->setCharEncoding("windows-1251");
Зарегистрировать одну или несколько функций
$objAjax->registerFunction('processForm');
и собственно запустить обработку
$objAjax->processRequests();
В самой функции достаточно весь код обработанный записать в строку и после эту строку вставить в выбранный объект, а код внутри функции:
создание объекта $objResponse = new xajaxResponse();
выполнить замену кода внутри объекта theform строкой $sOut $objResponse->addAssign("theform", "innerHTML", $sOut);
и вернуть результат return $objResponse->getXML();
И все функция средствами ajax вернет измененный код внутрь указанного объекта.
Хочу заметить что библиотека очень мощная и постоянно обновляется, кроме изменения кода внутри объекта можно работать динамически со стилями объектов, можно динамически изменить подключаемый файл css, что приведет к изменению оформления всего сайта на глазах без перегрузки, а самое главное - это возможность выполнения функций JavaScript. На сайте есть примеры и полно в Internet, я уже год работаю с этой библиотекой, возможно позже приведу примеры и описания работы с этой библиотекой. А в следущей статье опишу библиотеку highslide для вывода картинок и любого html кода средствами ajax.
Категория: Веб программирование с использовани | Добавил: SINET (27.08.2008)
Просмотров: 2322 | Комментарии: 1 | Рейтинг: 3.0 |

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Форма входа
Поиск по каталогу
Друзья сайта

Интернет-радио
Статистика

Copyright MyCorp © 2006
Используются технологии uCoz