Это тот самый код:
html документ:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3c.org/TB/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3c.org/1999/xhtml">
<head>
<title>
AJAX и PHP: Quickstart
</title>
<script type="text/javascript" src = "quickstart.js"></script>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" /></head>
<body onLoad = 'process( )'>
Сервер желает узнать ваше имя:
<input type = "text" id = "myName" value = "проверка" />
<div id = "divMessage"/>
</body>
</html>
js документ:
//ссылка на объект XMLHTTPRequest
var xmlHttp = createXmlHttpRequestObject( );
//создание объекта XMLHttpRequest
function createXmlHttpRequestObject ( ) {
//для хранения ссылки на объект XMLHttpRequest
var xmlHttp;
//для браузера Internet Explorer
if ( window.ActiveXObject ) {
try {
xmlHttp = new ActiveXObject ( "Microsoft.XMLHTTP" );
}//try {
catch ( e ) {
xmlHttp = false;
}//catch ( e ) {
}//if ( window.ActiveXObject ) {
//если сценарий запущен под управлением Mozila или другого браузера
else {
try {
xmlHttp = new XMLHttpRequest ( );
}//try {
catch ( e ) {
xmlHttp = false;
}//catch ( e ) {
}//else {
//возвращает созданный объект или выводит сообщение об ошибке
if ( !xmlHttp ) {
alert( "Ошибка при создании объекта XMLHttpRequest" );
}//if ( !xmlHttp ) {
else {
return xmlHttp;
}//else {
}//function createXmlHttpRequestObject ( ) {
//далее идёт выполнение асинхронного запроса HTTP с помощью объекта XMLHttpRequest
function process ( ) {
//работа возможна только если объект xmlHttp не занят
if ( xmlHttp.readyState == 4 || xmlHttp.readyState == 0 ) {
//получаем имя введённое пользователем в форму
name = encodeURIComponent( document.getElementById( "myName" ).value );
//alert ( name );
//обращение к сценарию quickstart.php на сервере
xmlHttp.open ( "GET", "quickstart.php?name=" + name, true );
//определение метода, который будет обрабатывать ответы сервера
xmlHttp.onreadystatechange = handleServerResponse;
//посылается асинхронный запрос серверу
xmlHttp.send( null );
}//if ( xmlHttp.readyState == 4 || xmlHttp.readyState == 0 ) {
else {
alert ( "соединение занято" );
//если соединение занято, повторить попытку через одну секунду
setTimeout( 'process( )', 1000 );
}//else {
}//function process ( ) {
//вызывается автоматически по прибытии сообщения от сервера
function handleServerResponse ( ) {
//продолжать можно только если транзакция с сервером завершена
if ( xmlHttp.readyState == 4 ) {
//значение 200 говорит о том, что транзакция прошла успешно
if ( xmlHttp.status == 200 ) {
//извлечь XML, полученный от сервера
xmlResponse = xmlHttp.responseXML;
//получить корневой элемент в структуре XML
xmlDocumentElement = xmlResponse.documentElement;
//извлечь текстовое сообщение, которое находится в первом дочернем элементе корневого узла
helloMessage = xmlDocumentElement.firstChild.data;
//обновить текст сообщения на экране
document.getElementById ( "divMessage" ).innerHTML = '<i>' + helloMessage + '</i>';
//повторить последовательность действий
setTimeout ( 'process ( )', 1000 );
}//if ( xmlHttp.status == 200 ) {
//код статуса HTTP, отличный от 200, говорит о наличии ошибки
else {
alert ( "При обращении к серверу возникли проблемы: " + xmlHttp.statusText );
}//else {
}//if ( xmlHttp.readyState == 4 ) {
}//function handleServerResponse ( ) {
php документ:
<?php
//результат будет отправлен в формате XML
header ( 'Content-Type: text/xml; charset = windows-1251' );
//генерация заголовка XML
echo '
<?xml version = "1.0" encoding = "windows-1251" standalone = "yes" ?>
<response>
';//echo '
$name = iconv ( "utf-8", "windows-1251", $_GET[name] );
//генерация текста сообщения в зависимости от имени пользователя принятого от клиента
if ( trim ( $name ) == "санёк" ) {
echo "
Здравствуйте, мистер $name !
"; //echo "
}//if ( in_array (strtoupper ( $name ), $userNames ) ) {
else if ( trim ( $name ) == '' ) {
echo "
Скажи мне, как зовут тебя, незнакомец!
";//echo "";
}//else if ( trim ( $name ) == '' ) {
else {
$massiv = array ( "Один", "Два", "Три", "Четыре", "Пять", "Шесть", "Семь", "Восемь", "Девять", "Десять");
foreach ( $massiv as $key => $znachenie ) {
echo "
$name, вы мне не знакомы!
";//echo '
}//foreach ( $massiv as $key => $znachenie ) {
}//else {
echo "
</response>
";//echo "
?>