xml ответ в AJAX

Статус
В этой теме нельзя размещать новые ответы.

Rigor

Профессор
Регистрация
1 Июн 2008
Сообщения
203
Реакции
35
Есть функция обновления:

Код:
function updatePageform() {


if (request.readyState == 4) {
if (request.status == 200) {
var status = request.responseXML;

var xmlq = status.getElementByTagName("q")[0];
var q = xmlq.firstChild.nodeValue;

var xmlw = status.getElementByTagName("w")[0];
var w = xmlw.firstChild.nodeValue;

var xmle = status.getElementByTagName("e")[0];
var e = xmle.firstChild.nodeValue;

document.getElementById("doc").innerHTML = "Обновлено";
} else if (request.status == 404) {
         alert ("Requested URL is not found.");
       } else if (request.status == 403) {
         alert("Access denied.");
       } else
         alert("status is " + request.status);
     } else {
	 var form = document.getElementById("form");
	 form.style.display = "none";
document.getElementById("doc").innerHTML = "Ждите";
	 }
   }

Файл, с которого приходят данные.

PHP:
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>;

?>
<total>
<q><? echo $q ?></q>
<w><? echo $w ?></w>
<e><? echo $e ?></e>

</total>";

Итог: нет статуса 4. Т.к. все время сообщение ждите. В чем проблема? Заранее спасибо
 
Есть функция обновления:
Файл, с которого приходят данные.
PHP:
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>;
?>
<total>
<q><? echo $q ?></q>
<w><? echo $w ?></w>
<e><? echo $e ?></e>
</total>";
Итог: нет статуса 4. Т.к. все время сообщение ждите. В чем проблема? Заранее спасибо
Если верно скопировал файл то у тебя ошибка в скрипте.
Или лишнее закрытие "?>" или слишком поздно закрываешь echo.
Ты наверное хотел написать так:
PHP:
<?php
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>;";
?>
<total>
<q><? echo $q ?></q>
<w><? echo $w ?></w>
<e><? echo $e ?></e>
</total>
 
А разве то что после ечо в твоем коде идет не нужно отправлять с помощью ечо?(сори за тавтологию)). Вмысле вобще каким-то способом нужно передавать? Или просто вот-так написать?

Исправил как вы сказали, но ошибка все та же
 
хост с которого делаете запрос и то, куда его делаете один?
а вообще, используйте JQuery, там много функций для работы с AJAX, крайне удобно.
 
хост с которого делаете запрос и то, куда его делаете один?

Да один. Что странно, если в этом коде:

Код:
function updatePageform() {
if (request.readyState == 4) {
if (request.status == 200) {
var status = request.responseXML;
[B]var xmlq = status.getElementByTagName("q")[0];
var q = xmlq.firstChild.nodeValue;
var xmlw = status.getElementByTagName("w")[0];
var w = xmlw.firstChild.nodeValue;
var xmle = status.getElementByTagName("e")[0];
var e = xmle.firstChild.nodeValue;[/B]
document.getElementById("doc").innerHTML = "Обновлено";
} else if (request.status == 404) {
         alert ("Requested URL is not found.");
       } else if (request.status == 403) {
         alert("Access denied.");
       } else
         alert("status is " + request.status);
     } else {
	 var form = document.getElementById("form");
	 form.style.display = "none";
document.getElementById("doc").innerHTML = "Ждите";
	 }
   }

Убрать выделенное совсем или строчку document.getElementById("doc").innerHTML = "Обновлено"; поднять над ними, то все работает...
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху