RU

Ajax - Пример вызова XMLHttpRequest

rss
Пример вызова XMLHttpRequest и загрузкой полученных данных в <div id="getRequestData"></div>

<?php
//обработчик изминения статуса запроса 
function processReqChange() { 
  if ( 
req.readyState == ) { 
    if ( 
req.status == 200 ) { 
      
document.getElementById("getRequestData").innerHTML req.responseText;   
      } 
    else 
     { 
      
document.getElementById("getRequestData").innerHTML req.statusText
     } 
  } 


//функция посылки запроса без перезагруски страницы 
function sendRequestmethodurl ) { 
  if ( 
window.XMLHttpRequest 
    
req = new XMLHttpRequest(); 
  else if ( 
window.ActiveXObject 
    
req = new ActiveXObject"Microsoft.XMLHTTP" ); 
  if ( 
req ) { 
    
req.onreadystatechange processReqChange
    
req.openmethodurltrue ); 
    
req.sendnull ); 
  } 


//функция отправки по POST запросу на url 
function GetPhpDataText(url) { 
   var 
rt document.getElementById("getRequestData"); 
   if (
rt) { 
    
rt.innerHTML "Отправка запроса...."
   }   
   
sendRequestTextData"POST"url );      
}
?>


Пример запуска
<div id="getRequestData"></div>
<input type="button" value="Получить данные" name="getDataButton"
onclick=GetPhpDataText("data/getSource.php?
uid=1&ikdata=ip&action=get")/>

Обработка данных в php скрипте:
Для корректного получения ответа от php скрипта - скрипт перед выдачей информации должен послать заголовок, а если точнее - два заголовка: Тип данных и их кодировку.
Пример отдачи запросу текста:
1 - необходимо установить кодировку текста
<?php
header
("Content-type: text/plain; charset=windows-1251");
?>


2 - также необходимо запретить кэширование страницы (если нехотите получать одно и тоже )
<?php
header
("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0"false);
?>


либо установить следующие заголовки
<?php
header
("Expires: Mon, 26 Jul 1997 05:00:00 GMT");  // disable IE caching 
header("Last-Modified: " gmdate"D, d M Y H:i:s") . " GMT");  
header("Cache-Control: no-cache, must-revalidate");  
header("Pragma: no-cache");
?>


а далее можно выводить и сам текст
Пример php скрипта который просто возвращает произвольное число
<?php
header
("Content-type: text/plain; charset=windows-1251"); 
 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
 
header("Cache-Control: post-check=0, pre-check=0"false); 
 function 
GetRandom() {  
    
$DID = (integer) 0;  
    
srand ((double) microtime() * 10000);  
    
$DID rand();       
    return 
$DID;             
  }   
 print 
GetRandom();
?>
 
Дата добавления: 2009-11-24 09:02:29, просмотров: 6879
Комментарии: 0
Пожалуйста, авторизируйтесь, для возможности добавить комментарий..
Copyright © 2011 - 2024 forwebm.net
 
Яндекс цитирования
Поддержка
E-mail: Задать вопрос ,

Рейтинг@Mail.ru

Создание сайта: forwebm.net