Добрый вечер, форумчане!
Итак, мой первый простой урок в надежде на то, что люди на форуме немного оживятся

Будем учиться асинхронно проверять доступность логина во время регистрации пользователя.
Для начала необходимо изучить процесс и разработать модель регистрации на сайте. Выделим ключевые этапы:
1. Ввод пользователем своего логина
2. Проверка на "опасные" символы
3. В случае успешной проверки - проверка на доступность, то есть нет ли уже пользователя в системе с тем же логином
4. Непосредственно регистрация
Вообще, хороший прием решения любой задачи сводится к ее абстрагированию. То есть необходимо мысленно представить задачу как некую систему, у которой есть входные данные, некоторые правила, сам процесс и результат работы. Итак, начнем с описания нашей системы - простой функции на PHP*:
function isLoginExists($login){
/* Здесь проверка регулярным выражением
...
*/
$res = $db->("SELECT user_login FROM users WHERE user_login = $login LIMIT 1");
$data = mysql_fetch_assoc($res);
mysql_num_rows($data) ? return true : return false;
}
Как видно, функция принимает один-единственный параметр $login.
Теперь "вживляем" xajax. Для начала его необходимо
скачать версию 2.5 с SourceForge.net. Далее, распаковываем архив в папку с нашим скриптом. И начинаем шаманить:
Подключаем библиотеку и создаем объект класса:
require_once 'xajax/xajax.inc.php';
$xajax = new Xajax;
Регистрируем нашу функцию и подготавливаем класс для работы:
$xajax->registerFunction('isLoginExists');
$xajax->processRequests();
Далее (важно!) необходимо прописать в между тегами <head>...</head> нашей страницы:
$xajax->printJavascript('xajax');
Ну а дальше - дело техники. Готовим форму на нашей веб-странице:
<html>
<head>
<?
$xajax->printJavascript('xajax');
?>
</head>
<body>
<form>
<input type="text" id="checklogin"><input type="button" onClick="xajax_isLoginExists(document.getElementById('checkLogin').value)">
</form>
</body>
</html>
После этого нам необходимо немного модифицировать нашу функцию, чтобы она могла вернуть результат в виде XML обратно к обработчику xajax.js на стороне клиента:
function isLoginExists($login){
$obj = new xajaxResponse();
$res = $db->("SELECT user_login FROM users WHERE user_login = $login LIMIT 1");
$data = mysql_fetch_assoc($res);
mysql_num_rows($data) ? $obj->addAlert('Есть такой логин!') : return $obj->addAlert('Имя свободно!');
return $obj;
}
Метод addAlert заставляет браузер показать окно сообщения. Вот в принципе и все! Все исходники
тут, будут вопросы - задаем.