X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> Ответ в формате XML в Ajax
yuriy_hb
yuriy_hb
Topic Starter сообщение 24.5.2010, 12:22; Ответить: yuriy_hb
Сообщение #1


Подскажите, что не так:
Создал запрос к серверу:

function showAnswer(page) {
var url = "test.php?page=" + escape(page);
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
}


вот РНР сценарий который должен возвращать ответ в формате XML
[PHP]<?php
// Даем знать клиенту, что возвращаем XML
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<ratings>";

$title = "7";
$rating = "9";

echo "<show>";
echo "<title>" . $title . "</title>";
echo "<rating>" . $rating . "</rating>";
echo "</show>";
echo "</ratings>";

?>
[/PHP]

Вот функция которая візівается после получения ответа:
function updatePage() {
if (request.readyState == 4) {
if (request.status == 200) {
var xmlDoc = request.responseXML;

var showElements = xmlDoc.getElementsByTagName("show");
for (var x=0; x<showElements.length; x++) {
// Мы знаем, что первый потомок show - это title, а второй - rating
var title = showElements[x].childNodes[0].value;
var rating = showElements[x].childNodes[1].value;
alert(title);
// Теперь делайте что хотите с show, title и ratings
}
}
}
}


Но к сожалению ответ не получаем, чтобы выводилося всплывающее окошко со значением!
Где ошибка! Подскажите! Спасибо!
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Letmetouchyou
Letmetouchyou
сообщение 24.5.2010, 12:50; Ответить: Letmetouchyou
Сообщение #2


function text(el) {
    var t = "";
    el = el.childNodes || el;
    for ( var j = 0; j < el.length; j++ ) {
       t += el[j].nodeType != 1 ?
           el[j].nodeValue : text(el[j].childNodes);
    }
}

вот разбо хмл документа. попробуй так.

И приверь приходит ли ответ, седлай алерт
...
if (request.status == 200) {
       alert(request.responseXML);
..
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 24.5.2010, 13:06; Ответить: yuriy_hb
Сообщение #3


куда эту функцию вставить в моем примере?
function text(el) {
var t = "";
el = el.childNodes || el;
for ( var j = 0; j < el.length; j++ ) {
t += el[j].nodeType != 1 ?
el[j].nodeValue : text(el[j].childNodes);
}
}


:sarcastic:
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
alexdrob
alexdrob
сообщение 24.5.2010, 13:37; Ответить: alexdrob
Сообщение #4


(yuriy_hb @ 24.5.2010, 15:22) *
Но к сожалению ответ не получаем

Если вы проверяете не на веб сервере а просто файлик с жеского диска запускаете поменяйте
if (request.status == 200) {

на
if (request.status == 0) {
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
yuriy_hb
yuriy_hb
Topic Starter сообщение 24.5.2010, 13:48; Ответить: yuriy_hb
Сообщение #5


Я тестирую приложение на сервере. У меня на локальной машине установлен сервер и я пытаюсь отладить запрос.
У меня стоит задача с помощью Ajax получить от рнр-сценария два ответа. Просая передача данных в форме текста не подходит (request.responseText), поскольку сценарий возвращает два разных значения. Нужно реализовать ответ от сервера с помощью XML.
Я уже запутался, все вроде делаю к написано в учебниках.
Посмотрите, пожалуйста, на исходники моих файлов, может в них где-то есть ошибка или что-то не так сделано:
Отправка на сервер одного значения:

function showAnswer(page) {
var url = "test.php?page=" + escape(page);
request.open("GET", url, true);
request.onreadystatechange = updatePage;
request.send(null);
}


Сценарий РНР который возвращает два разных значения в формате XML (посмотрите правильно ди я все записал):

[PHP]<?php
// Даем знать клиенту, что возвращаем XML
header("Content-Type: text/xml");
echo "<?xml version=\"1.0\" encoding=\"utf-8\"?>";
echo "<ratings>";

$title = "7";
$rating = "9";
echo "<show>";
echo "<title>" . $title . "</title>";
echo "<rating>" . $rating . "</rating>";
echo "</show>";
echo "</ratings>";

?>[/PHP]

И наконец функция которая вызывается после возвращения ответа:

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

var showElements = xmlDoc.getElementsByTagName("show");
for (var x=0; x<showElements.length; x++) {
// Мы знаем, что первый потомок show - это title, а второй - rating
var title = showElements[x].childNodes[0].value;
var rating = showElements[x].childNodes[1].value;

alert(title);

}
}
}
}


В алерте в переменной title должно быть значение 7, но вместо этого выдает null...
Может кто подскажет что за ошибка сдесь???:wacko:

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Нужен сайт с автонаполнением по XML
1 REGNET 1131 7.3.2024, 15:08
автор: REGNET
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44765 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) RTB/XML Партнерская сеть Trafficstore.pro
0 trafficstore2x2 1570 26.3.2021, 15:44
автор: trafficstore2x2
Открытая тема (нет новых ответов) RTB/XML Партнерская сеть Trafficstore.pro
0 trafficstore2x2 1012 23.3.2021, 18:53
автор: trafficstore2x2
Открытая тема (нет новых ответов) Zel.Biz - CPA/CPI партнерка и Push-сеть (XML JSON feed)
0 zelads1 869 27.12.2020, 17:05
автор: zelads1


 



RSS Текстовая версия Сейчас: 29.3.2024, 0:17
Дизайн