Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: AJAX Помогите!
Форумы портала PHP.SU » Клиентская разработка » JavaScript & VBScript » AJAX Помогите!

Страниц (1): [1]
 

1. new01 - 04 Июля, 2011 - 14:16:39 - перейти к сообщению
Вот у меня в коде есть функция,которая обрабатывает ответ от сервера.
PHP:
скопировать код в буфер обмена
  1.  
  2. /*Первая функция*/
  3. function handleRequestStateChange()
  4. {
  5.     if(xmlHttp.readyState == 3 || xmlHttp.readyState == 2 || xmlHttp.readyState == 1)
  6.         {
  7.         Alert('Загрузка');
  8.         }
  9.    if(xmlHttp.readyState == 4) {
  10.      
  11.      if (xmlHttp.status == 200)
  12.    {
  13.      
  14.    
  15.      try  
  16.          {
  17.          
  18.          handleServerRespone();
  19.          
  20.          }
  21.          catch(e)
  22.          {
  23.          alert("Ошибка ответа");
  24.          
  25.          }
  26.      
  27.          
  28.    }
  29.  
  30.  
  31.  
  32.  
  33. }
  34. }
  35.  

И есть тоже совсем другая функция,которая обрабатывает тоже ответ от сервера только на совсем другой запрос.Проблема в том, что когда сработает один раз первая функция(дана выше), и после нее сработает вторая, то во время работы второй выполняется вот этот код, который написан в первой. Что за фигня? Почему он выполняется?
PHP:
скопировать код в буфер обмена
  1.  
  2.    if(xmlHttp.readyState == 3 || xmlHttp.readyState == 2 || xmlHttp.readyState == 1)
  3.         {
  4.         Alert('Загрузка');
  5.         }
  6.  

PHP:
скопировать код в буфер обмена
  1.  
  2. /*Вторая функция*/
  3. function infoManText()
  4. {
  5.  
  6.  
  7.      
  8. if(xmlHttp.readyState == 4) {
  9.      if (xmlHttp.status == 200)
  10.    {
  11.    
  12.      try
  13.          {
  14.          
  15.           var xmlResponse=xmlHttp.responseXML;
  16.      if(!xmlResponse || !xmlResponse.documentElement)
  17.      throw("NEVERNAJA Strcutura XML");
  18.      var rootNodeName=xmlResponse.documentElement.nodeName;
  19.      if(rootNodeName=="parsererror")throw("Invalid XML");
  20.      xmlRoot=xmlResponse.documentElement;
  21.      
  22.          
  23.          
  24.          
  25.          
  26.          }
  27.          catch(e)
  28.          {
  29.          alert("Ошибка ответа");
  30.          
  31.          }
  32.      
  33.          
  34.    }
  35.  
  36.  
  37.  
  38.  
  39.  
  40. }
  41.  
  42. }
  43.  
2. OrmaJever - 04 Июля, 2011 - 14:18:59 - перейти к сообщению
фигня походу в том что вы работаете с одним обьектом xmlHttp и в первой функции и во второй, нужно копировать чтоле
3. new01 - 04 Июля, 2011 - 14:21:58 - перейти к сообщению
OrmaJever пишет:
нужно копировать чтоле

Это вопрос? Про объект понял. А остальное нет.
(Добавление)
Да согласен объект один. Но Во Второй раз первая функция вообще не трогается(вызывается) вызывается только вторая, а выполняется часть из первой.
4. OrmaJever - 04 Июля, 2011 - 14:29:35 - перейти к сообщению
new01 пишет:
Это вопрос?

это предложение Подмигивание
Ну я всегда так использовал
CODE (javascript):
скопировать код в буфер обмена
  1. function getXmlHttp()
  2. {
  3.   var xmlhttp;
  4.   try {
  5.     xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
  6.   } catch (e) {
  7.     try {
  8.       xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
  9.     } catch (E) {
  10.       xmlhttp = false;
  11.     }
  12.   }
  13.   if (!xmlhttp && typeof XMLHttpRequest!='undefined') {
  14.     xmlhttp = new XMLHttpRequest();
  15.   }
  16.   return xmlhttp;
  17. }
  18.  
  19. function ajax1() {
  20.   var get = getXmlHttp();
  21.   ...
  22. }
  23. function ajax2() {
  24.   var get = getXmlHttp();
  25.   ...
  26. }

тоесть для каждой функции создаётся свой обьект
5. new01 - 04 Июля, 2011 - 16:16:42 - перейти к сообщению
Спасибо.

 

Powered by ExBB FM 1.0 RC1