Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.12.2012, 14:36
Интересующийся
Отправить личное сообщение для ŞΘLƉiΞR Посмотреть профиль Найти все сообщения от ŞΘLƉiΞR
 
Регистрация: 04.04.2012
Сообщений: 17

js не видит содержимое тега
Вот собственно код:
function getXmlHttp(){
  var xmlhttp;
  try {
    xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  } catch (e) {
    try {
      xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
    } catch (E) {
      xmlhttp = false;
    }
  }
  if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
    xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
// javascript-код голосования из примера
function vote() {
	// (1) создать объект для запроса к серверу
	var req = getXmlHttp()  
       
        // (2)
	// span рядом с кнопкой
	// в нем будем отображать ход выполнения
	var statusElem = document.getElementById('vote_status') 
	
	req.onreadystatechange = function() {  
        // onreadystatechange активируется при получении ответа сервера

		if (req.readyState == 4){ 
            // если запрос закончил выполняться

			statusElem.innerHTML = req.statusText // показать статус (Not Found, ОК..)

			if(req.status == 200){ 
                 // если статус 200 (ОК) - выдать ответ пользователю
				//получаем XML от сервера
				xmlResponse = req.responseXML;
				xmlDoc = xmlResponse.documentElement;
				//	получаем текстовое сообщение,
				//	которое является первым Child-элементом
				//	XML документа
				helloMessage = xmlDoc.firstChild.data;
				alert("Ответ сервера: "+helloMessage);
			}
			// тут можно добавить else с обработкой ошибок запроса
		}

	}

       // (3) задать адрес подключения
	req.open('POST', 'vote.php', true);  
	// строка обязательна для передачи данных методом POST
	req.setRequestHeader("Content-type","application/x-www-form-urlencoded");

	// объект запроса подготовлен: указан адрес и создана функция onreadystatechange
	// для обработки ответа сервера
	 
        // (4)
	req.send("text=one");  // отослать запрос
  
        // (5)
	statusElem.innerHTML = 'Ожидаю ответа сервера...' 
}

PHP обработчик:
<?php
if(isset($_POST['text'])){
header('Content-Type: text/xml');
$text = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'.
		'<result>'.
		'test'.
		'</result>';
echo $text;
}
?>

И страница на которой всё происходит:
<!DOCTYPE html>
<html>
	<head>
		<script src="ajax.js"></script>
	</head>
	<body>
		<input value="Голосовать!" onclick="vote()" type="button" />
		<div id="vote_status">Здесь будет ответ сервера</div>
	</body>
</html>

Проблема в том, что сценарий js не видит текст в теге <result> при использовании helloMessage = xmlDoc.getElementByTagName('result').data, если ставить helloMessage = xmlDoc.firstChild.data то видит. Подскажите, как решить эту проблему?
Ответить с цитированием
  #2 (permalink)  
Старый 24.12.2012, 14:38
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

ŞΘLƉiΞR,
getElement*!*s*/!*ByTagName()
Ответить с цитированием
  #3 (permalink)  
Старый 24.12.2012, 14:43
Интересующийся
Отправить личное сообщение для ŞΘLƉiΞR Посмотреть профиль Найти все сообщения от ŞΘLƉiΞR
 
Регистрация: 04.04.2012
Сообщений: 17

lord2kim,
пробовал, не помогает
Ответить с цитированием
  #4 (permalink)  
Старый 24.12.2012, 14:55
Аватар для lord2kim
Профессор
Отправить личное сообщение для lord2kim Посмотреть профиль Найти все сообщения от lord2kim
 
Регистрация: 03.05.2011
Сообщений: 848

ŞΘLƉiΞR, не дописал
xmlDoc.getElementsByTagName("result")[0].data
Ответить с цитированием
  #5 (permalink)  
Старый 24.12.2012, 14:59
Интересующийся
Отправить личное сообщение для ŞΘLƉiΞR Посмотреть профиль Найти все сообщения от ŞΘLƉiΞR
 
Регистрация: 04.04.2012
Сообщений: 17

неа, всё равно таже самая фигня
Ответить с цитированием
  #6 (permalink)  
Старый 24.12.2012, 16:34
Интересующийся
Отправить личное сообщение для ŞΘLƉiΞR Посмотреть профиль Найти все сообщения от ŞΘLƉiΞR
 
Регистрация: 04.04.2012
Сообщений: 17

всё, разобрался, дело тут не в getElement*, а то что в XML можно только использовать childNodes и пр.
helloMessage = xmlDocumentElement.childNodes[0].data;
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как записать строку в атрибут тега из js DmitryT Элементы интерфейса 5 21.03.2011 10:50
Как вывести содержимое PHP файла с помощью JS? pavdin Серверные языки и технологии 6 22.12.2010 14:16
изменение стиля для тега используя JS dimiork Элементы интерфейса 2 13.12.2010 10:47
Как вытянуть содержимое тега? kakarotto Элементы интерфейса 2 23.07.2010 17:21
Как загрузить содержимое web-страницы и провести ее анализ с помощью Js stakker Events/DOM/Window 9 05.02.2010 23:55