Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

HTML+CSS+JavaScript

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Проблемы с Ajax (вмсто одного раза выводит два)
 
 автор: ReZiStOr   (10.07.2008 в 18:36)   письмо автору
 
 

Здравствуйте укажите ошибку если не тяжело :

function xml_connect()
{
try
  {
    XMLHttp= new XMLHttpRequest;
    } catch(e)
              {
                  var XMLHttpVersions= new Array(
                                                 "MSXML2.XMLHTTP.6.0",
                                                 "MSXML2.XMLHTTP.5.0",
                                                 "MSXML2.XMLHTTP.4.0",
                                                 "MSXML2.XMLHTTP.3.0",
                                                 "MSXML2.XMLHTTP",
                                                 "Microsoft.XMLHTTP");
                  
                  
                  for(var i=0;i<XMLHttpVersions.length && !XMLHttp;i++)
                  {
                    try
                       {
                        XMLHttp= new ActiveXObject(XMLHttpVersions[i]);
                       }
                    catch(e){}
                  }   
              }

if(!XMLHttp)
           {    
               alert("Ошибка !");
           }else{
               
                    return XMLHttp;
                    
                };                    
                                                 
    
    
    
};


function get_infa(id)
{
if( XMLHttp.readyState==0  || XMLHttp.readyState==4 )
 {

   XMLHttp.open("GET","/index.php/get/index/"+id,true);
   XMLHttp.send(null);
   XMLHttp.onreadystatechange=otvet;


    }else{setTimeout(get_infa(id),1000);};
                                                         
                                                      
    
};

                                                                    
function otvet()
{
   if (XMLHttp.readyState == 4) {
              if(XMLHttp.status== 200){     
                        var otv=XMLHttp.responseText;
                         document.getElementById("T2TBalloon").innerHTML=otv;
                                                            };
                                                       };
};





php скрипт на который отправляется запрос генерирует HTML табличку.
Функцию get_infa(id) вызываю на onmouseover тега <area>.


Все работает только вот трабла с тем что вмсто одной таблички их две.

Помогите разобратся. Заранее спасибо.

   
 
 автор: ONYX   (11.07.2008 в 03:02)   письмо автору
 
   для: ReZiStOr   (10.07.2008 в 18:36)
 

Здесь ошибок вроде нет связанных с AJAX`ом. Проверьте PHP возможно там код кешируется два раза.
Кстати после закрывающей фигурной скобки точку с запятой ставить не нужно.

   
 
 автор: Antohins   (11.07.2008 в 13:41)   письмо автору
 
   для: ReZiStOr   (10.07.2008 в 18:36)
 

function get_infa(id) 

if( XMLHttp.readyState==0  || XMLHttp.readyState==4 ) 
 { 

   XMLHttp.open("GET","/index.php/get/index/"+id,true); 
   XMLHttp.send(null); 
   XMLHttp.onreadystatechange=otvet; 


    }else{setTimeout(get_infa(id),1000);}; 
                                                          
                                                       
     
};

Логика неправильно составлена.

if( XMLHttp.readyState==0 || XMLHttp.readyState==4 )

т.е. отправка произойдет если в текущий момент ничего не отправляется, либо данные уже загружены, если это условие не выполнено, то происходит повторная отправка. попробуйте поставить такое условие:

if( XMLHttp.readyState==0)



... и еще... XMLHttp.open("GET","/index.php/get/index/"+id,true); — вот тут слеш не нужно убрать?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования