Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Общие вопросы > Ajax


Автор: 31416 24.9.2007, 09:15
делаю так: - в результате все нормально выполняется.
...
oXml = getXMLHttpObj();    
oXml.open('GET', 'getSubCategorys.php?id='+id+"&sid="+Math.random(), true);
oXml.onreadystatechange = processingFunction;
oXml.send(null);
...
 
function processingFunction(){          
    if ((oXml.readyState==4) || (oXml.readyState=="complete"))
   {  
    //выполнение доходит до этого места -все ок.
   }
}
 
делаю по другому:
 
ARequest('getSubCategorys.php?id='+id+"&sid="+Math.random(), processingFunction1);
 
function ARequest(href, func){
       var objXml = getXMLHttpObj();    
    objXml.open('GET', href, true);
    objXml.onreadystatechange = func(objXml);
    objXml.send(null);
}
 
function processingFunction1(objXml){          
        alert(objXml.readyState); // - функция выдает только 1-н раз значение 1
          if ((objXml.readyState==4) || (objXml.readyState=="complete"))
         {  
            //до сюда выполнение не доходит...
            }
}

вроде тоже самое но да нужного участка выполнение не доходит...
подскажите почему не срабатывает?)

Автор: cruelangel 24.9.2007, 10:35
в мозилле нажми ctrl+shit+j и перезагрузи страницу

Автор: 31416 24.9.2007, 12:45
ну нажал перезагрузил - тоже самое..в эксплорере тоже не работает

Автор: cruelangel 24.9.2007, 12:54
в окошке, которое появилось после нажатия что-нибудь пишется?

Автор: 31416 24.9.2007, 20:40
у меня вообще окошко никакое не появляется...  файрфокс 2-й версии

Автор: cruelangel 24.9.2007, 20:51
тогда меню "инструменты" - "консоль ошибок"

Автор: 31416 24.9.2007, 23:02
ошибок нет.. и функция  unction processingFunction1(objXml) вроде как вызывается - только 1-н раз и значение alert(objXml.readyState) выводиться равным 1 ...

Автор: amo25 25.9.2007, 14:51
Ошибка здесь:

Цитата
objXml.onreadystatechange = func(objXml);


Такой код приводит к вызову функции func с аргументом objXml и присвоению ее результата атрибуту objXml.onreadystatechange. А Вам надо саму функцию присвоить...

Если хотите, чтобы в Вашу функцию processingFunction1 попадал аргументом objXml, делайте так:

objXml.onreadystatechange = function() { func(objXml); };

Вот хороший пример реализации: http://web-tec.info/2007/09/08/ajax_fundamentals_xmlhttprequest/

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)