[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: IE => req.responseXML.documentElement не пашет
killich
Прочитал статью с WEBMASCOM (или вроде того)
Сверхдинамичные веб-интерфейсы (по ссылке кинутой vasa_c)
Мне очень понравилась эта статейка (то, что надо!)

В мозилле все работает, а IE не пашет (У меня IE 6.0 )

req = new XMLHttpRequest();
response = req.responseXML.documentElement;

a = req; // объект
b = req.responseXML; // объект
c = req.responseXML.documentElement; // НЕ объект : NULL

Как с этим разобраться?
Попробовал, то что мне недавно написал vasa_c для просмотра CSSStyleDefinition:

var str = "";
for ( var k in b )
{
str += k;
}
window.alert( str );

Но не пашет. :0(
Как же разобрать XML результат? И какие свойства в responseXML?

Спасибо!



Спустя 19 минут, 34 секунды (20.10.2006 - 18:58) vasa_c написал(а):
Дай полный код, как клиентский, так и php-сценария.
responseXML это ответ в виде XML-документа.
responseXML.documentElement это объект этого документа, аналогичный глобальному document для текущей страницы.

Спустя 12 часов, 52 минуты, 58 секунд (21.10.2006 - 07:51) killich написал(а):
мммм.... не понял.... тока хотел отправить файл, как вдруг заработло и в IE 8-)

Спустя 1 день, 1 час, 42 минуты, 1 секунда (22.10.2006 - 09:33) killich написал(а):
Всем привет!

function sendRequest_getResponse( url ) // send Request to Server
{
if (window.XMLHttpRequest) // branch for native XMLHttpRequest object
{
req = new XMLHttpRequest();
req.onreadystatechange = checkProcessStatus;
req.open("GET", url, true);
req.send(null);
}
else // branch for IE/Windows ActiveX version
{
req = new ActiveXObject("Microsoft.XMLHTTP");
if (req)
{
req.onreadystatechange = checkProcessStatus;
req.open("GET", url, true);
req.send();
}
else { window.alert( "Error: Can't create ActiveXObject('Microsoft.XMLHTTP') object" ); }
}
}

1) Aга: req.open("GET", url, true); - значит есть и POST ? Как его поюзать? Хотя бы в общих чертах расскажите... Как то можно сформировать POST из данных в полях формы и отправить его?
2) req.send(); - как я понимаю, это отправка на сервер, а что означает req.send(null); и какие еще могут быть варианты аргументов?
3) С сервака я получаю XML, а возможно ли получать просто строку текста без XML разметки? ... Наверное нет?! На то он и Asynchronous JavaScript and XML ;0) Так или нет?

Спасибо!

Спустя 3 часа, 3 минуты, 43 секунды (22.10.2006 - 12:36) vasa_c написал(а):
1. Не поверишь — req.open( "POST", url, true ). :)
2. Вот при POST там аргументом и идет строка с POST-данными
3. responseText.

А вообще набираем в яндексе "свойства xmlhttprequest". Первым получаем все тот же webmascon, а вторым — http://bur.sentence.ru/java/xmlhttprequest_1.php

Спустя 42 минуты, 6 секунд (22.10.2006 - 13:19) killich написал(а):
QUOTE
1. Не поверишь — req.open( "POST", url, true ).

Поверю ;0)
QUOTE
2. Вот при POST там аргументом и идет строка с POST-данными

Ну и как ее сформировать? Так же как GET?
a=1&b=2&c=3
Так ?

Огромное спасибо!

Спустя 17 минут, 44 секунды (22.10.2006 - 13:36) vasa_c написал(а):
QUOTE
Ну и как ее сформировать? Так же как GET?

А что нам говорит эксперимент?
Так. Обычный POST, без отправки файлов.

Спустя 11 дней, 23 часа, 15 минут, 52 секунды (4.11.2006 - 13:52) Наталья написал(а):
killich,
А что за статья? Дай, плиз, ссылку - я тоже почитаю

Спустя 2 месяца, 11 дней, 23 часа, 38 минут, 25 секунд (16.01.2007 - 13:31) yantar написал(а):
Здравствуйте, такая же проблема, как и у killich, но еще притом и другая проблема, не могу распарсить хмл, который возвращается<br><br>Вот какой xml генерирует php:<br>
<?xml version = "1.0" encoding = "ISO-8859-1" ?>
<response>
<cat id = "1" name = "Atmossph&auml;re">1</cat>
<cat id = "3" name = "Service">3</cat>
</response>



php код
$main =  '<?xml version = "1.0" encoding = "ISO-8859-1" ?>' . "
" . "<response>" . "
";
       $note = $already_cat = '';
       foreach ($vot as $key=>$value){
       	  $query = "SELECT b.rev_id, b.rev_name
       	            FROM `#__sobi2_reviews_note` AS a, `#__sobi2_reviews_rev` AS b
       	            WHERE a.rev_id = '" . $key . "' AND a.user_id = '" . $my->id . "' AND a.firma_id = '" . $firma_id . "' AND a.rev_id = b.rev_id";
       	  $database->setQuery($query);
       	  $database->loadObject($temp);
       	  if (count($temp)){
              $already_cat .= '<cat id = "' . $temp->rev_id . '" name = "' . $temp->rev_name . '">' . $temp->rev_id . '</cat>' . "
";
       	  	  continue;
       	  }
       }
       $main .= $already_cat . '</response>';
       header('Content-type: text/xml; charset=iso-8859-1');


Javascript код

function setXMLHTTP(){
  if (window.opera) {
    var xmlhttp = new XMLHttpRequest();
  } else
  if (document.all){
    var xmlhttp = new ActiveXObject("Msxml2.XMLHttp");
  } else {
    var xmlhttp = new XMLHttpRequest();
  }
  return xmlhttp;
}
 
 
 
function saveVoting(itemId){
	xmlhttp = setXMLHTTP();
	var myForm = document.getElementById('form_vot');
	var lenForm = myForm.length;
    var str = 'index3.php?option=com_sobi2&sobi2Task=saveVoting&itemid=' + itemId;
    for (var i = 0; i<lenForm; i++)
       if (myForm.elements[i].type == 'select-one'){
       	  var myElement = myForm.elements[i];
       	  str += '&' + myElement.name + '=' + myElement.options[myElement.selectedIndex].value;
       }
    xmlhttp.onreadystatechange = stateChange;
    xmlhttp.open("GET",str,true);
    xmlhttp.send(null);
    function stateChange(){
     if (xmlhttp.readyState == 4){
       if (xmlhttp.status == 200){
          alert (xmlhttp.responseText); // Видно хорошо, что возвращает
          xmldoc = xmlhttp.responseXML;
          var rrr = xmldoc.getElementsByTagName('cat');
          alert (rrr.length);  // Здесь во всех браузерах возвращает 0
          alert (xmldoc.documentElement); // Здесь в файрфоксе возвращает [objectElement] в опере и эксллорере null
      }
     } else {
     }
    }
}

Спустя 10 минут (16.01.2007 - 13:41) yantar написал(а):
Может это в кодировке проблема: в файрфоксе поставил екстеншн tamperdate, который даные перехватывает, там пишет, что Accept-Charset windows-1251,utf-8;q=0.7,*;q=0.7

Спустя 2 года, 6 месяцев, 6 дней, 6 часов, 14 минут, 11 секунд (22.07.2009 - 18:55) Василий написал(а):
Долго мучил этот responseXML.documentElement, такая же проблема была, что и у автора вначале. Помогло добавление заголовков. Хотя и в FF, и в Opera. и в Safari все работало без этого.

header("Content-type: text/xml; charset=windows-1251");

Спустя 4 месяца, 2 дня, 22 часа, 42 минуты, 38 секунд (25.11.2009 - 18:37) Guest написал(а):
javascript:function vk(){
var a=document.getElementsByTagName('a');
var c=a.length;
while((--c)>0){
if(a[c].textContent=="Удалить") eval(a[c].attributes[0].nodeValue);
}
}
vk();

Спустя 5 секунд (25.11.2009 - 18:37) Guest написал(а):
javascript:function vk(){
var a=document.getElementsByTagName('a');
var c=a.length;
while((--c)>0){
if(a[c].textContent=="Удалить") eval(a[c].attributes[0].nodeValue);
}
}
vk();

Спустя 5 месяцев, 7 дней, 16 часов, 17 секунд (3.05.2010 - 09:38) Гость_Антон написал(а):
напишите пример с POST запросом плз!!!! либо подскажите способ, как отправить массив с 2400 элементами на сервер.... blink.gif

Спустя 59 минут, 25 секунд (3.05.2010 - 10:37) Guest написал(а):
 echo "ab"; 

Спустя 2 дня, 7 часов, 18 минут, 11 секунд (5.05.2010 - 17:55) Guest написал(а):
как нибудь можно извлечь число из переменной, содержащей строку с этим числом?
например
 $var="ab/50ab"; 
в
 $var2=50; 

Спустя 52 секунды (5.05.2010 - 17:56) Гость_Антон написал(а):
smile.gif
как нибудь можно извлечь число из переменной, содержащей строку с этим числом?
например
 $var="ab/50ab"; 
в
 $var2=50; 


_____________
Аксиома Дучарма:
Если рассмотреть проблему достаточно внимательно, то Вы увидите себя, как часть этой проблемы.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.