Пример вызова XMLHttpRequest и загрузкой полученных данных в
Code
<?php
//обработчик изминения статуса запроса
function processReqChange() {
if ( req.readyState == 4 ) {
if ( req.status == 200 ) {
document.getElementById("getRequestData").innerHTML = req.responseText;
}
else
{
document.getElementById("getRequestData").innerHTML = req.statusText;
}
}
}
//функция посылки запроса без перезагруски страницы
function sendRequest( method, url ) {
if ( window.XMLHttpRequest )
req = new XMLHttpRequest();
else if ( window.ActiveXObject )
req = new ActiveXObject( "Microsoft.XMLHTTP" );
if ( req ) {
req.onreadystatechange = processReqChange;
req.open( method, url, true );
req.send( null );
}
}
//функция отправки по POST запросу на url
function GetPhpDataText(url) {
var rt = document.getElementById("getRequestData");
if (rt) {
rt.innerHTML = "Отправка запроса....";
}
sendRequestTextData( "POST", url );
}
?>
Пример запуска
Code
<div id="getRequestData"></div>
<input type="button" value="Получить данные" name="getDataButton"
onclick=GetPhpDataText("data/getSource.php?
uid=1&ikdata=ip&action=get")/>
Обработка данных в php скрипте:
Для корректного получения ответа от php скрипта - скрипт перед выдачей информации должен послать заголовок, а если точнее - два заголовка: Тип данных и их кодировку.
Пример отдачи запросу текста:
1 - необходимо установить кодировку текста
Code
<?php
header("Content-type: text/plain; charset=windows-1251");
?>
2 - также необходимо запретить кэширование страницы (если нехотите получать одно и тоже )
Code
<?php
header("Cache-Control: no-store, no-cache, must-revalidate");
header("Cache-Control: post-check=0, pre-check=0", false);
?>
либо установить следующие заголовки
Code
<?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 скрипта который просто возвращает произвольное число
Code
<?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();
?>