Показать сообщение отдельно
  #3 (permalink)  
Старый 13.01.2011, 11:28
Новичок на форуме
Отправить личное сообщение для hurricane Посмотреть профиль Найти все сообщения от hurricane
 
Регистрация: 27.12.2010
Сообщений: 4

Это тот самый код:

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 "

?>
Ответить с цитированием