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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: AJAX Помогите!

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
new01
Отправлено: 04 Июля, 2011 - 14:16:39
Post Id



Посетитель


Покинул форум
Сообщений всего: 301
Дата рег-ции: Июнь 2010  
Откуда: Челябинск


Помог: 1 раз(а)




Вот у меня в коде есть функция,которая обрабатывает ответ от сервера.
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.  

(Отредактировано автором: 04 Июля, 2011 - 14:17:58)



-----
new01
 
 Top
OrmaJever
Отправлено: 04 Июля, 2011 - 14:18:59
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




фигня походу в том что вы работаете с одним обьектом xmlHttp и в первой функции и во второй, нужно копировать чтоле


-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
new01
Отправлено: 04 Июля, 2011 - 14:21:58
Post Id



Посетитель


Покинул форум
Сообщений всего: 301
Дата рег-ции: Июнь 2010  
Откуда: Челябинск


Помог: 1 раз(а)




OrmaJever пишет:
нужно копировать чтоле

Это вопрос? Про объект понял. А остальное нет.
(Добавление)
Да согласен объект один. Но Во Второй раз первая функция вообще не трогается(вызывается) вызывается только вторая, а выполняется часть из первой.


-----
new01
 
 Top
OrmaJever
Отправлено: 04 Июля, 2011 - 14:29:35
Post Id



Активный участник


Покинул форум
Сообщений всего: 7540
Дата рег-ции: Янв. 2010  
Откуда: Чернигов


Помог: 299 раз(а)




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. }

тоесть для каждой функции создаётся свой обьект

(Отредактировано автором: 04 Июля, 2011 - 14:30:28)



-----
Если вы хотя бы 3-4 раза не решите всё выкинуть и начать заново - вы явно что-то делаете не так.
 
 Top
new01
Отправлено: 04 Июля, 2011 - 16:16:42
Post Id



Посетитель


Покинул форум
Сообщений всего: 301
Дата рег-ции: Июнь 2010  
Откуда: Челябинск


Помог: 1 раз(а)




Спасибо.


-----
new01
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« JavaScript & VBScript »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB