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

HTML+CSS+JavaScript

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

 

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

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

тема: Проблема с динамическим запросом к файлу
 
 автор: maxfade   (06.08.2010 в 08:46)   письмо автору
 
 

Использую такую конструкцию для запроса к php файлу с последующим выводом в div:


<script type="text/javascript">
            function loadXMLDoc(url)
            {
            if (window.XMLHttpRequest)
            {// code for IE7+, Firefox, Chrome, Opera, Safari
                var xmlhttp=new XMLHttpRequest();
            }
            else
            {// code for IE6, IE5
                var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
            }
                xmlhttp.open("GET","getuser.php?q="+url,false);
                xmlhttp.send(null);
                document.getElementById('engineer_div').innerHTML=xmlhttp.responseText;
            }
            </script>


Проблема заключается в том, что IE, при выполнении данного скрипта, говорит что "Object doesn`t support this property or method" (скриншот во вложении). В результате запроса к файлу getuser.php выводиться список фамилий пользователей в виде select.

Подскажите в чем проблема?

Заранее спасибо!

  Ответить  
 
 автор: sl1p   (06.08.2010 в 09:14)   письмо автору
 
   для: maxfade   (06.08.2010 в 08:46)
 

<script type="text/javascript"> 
            function loadXMLDoc(url) 
            { 
            if (window.XMLHttpRequest) 
            {// code for IE7+, Firefox, Chrome, Opera, Safari 
                var xmlhttp=new XMLHttpRequest(); 
            } 
            else 
            {// code for IE6, IE5 
                var xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); 
            } 
                xmlhttp.onreadystatechange = function() {
                   if(xmlhttp.readyState == 4) {
                     document.getElementById('engineer_div').innerHTML=xmlhttp.responseText;
                   }
                }
                xmlhttp.open("GET","getuser.php?q="+url,false); 
                xmlhttp.send(null); 
            } 
            </script>

  Ответить  
 
 автор: АЯ   (06.08.2010 в 09:16)   письмо автору
 
   для: maxfade   (06.08.2010 в 08:46)
 

Как с Вами скуШно...
Тысяча и одна ссылка в интернете есть, где популярно объяснено - как именно надо организовывать AJAX.
Но всякий раз находится тот, кто начинает САМ изобретать велосипед.

Сервер - он ДАЛЕКО.
Покуда запрос от браузера до сервера дойдёт и покуда сервер ответит и его ответ до браузера доберется - проходит какое-то время.
Какое именно - никто не знает. Ибо оно (это время) каждый раз - разное. Зависит от скорости соединения, от состояния сети, от состояния сервера...

В общем, после выполнения send () функции надо остановиться и подождать - покуда ответ придёт.
И предупредить браузер, что по получении ответа надо продолжить работу.
Для этого ВЕЗДЕ и ВСЕГДА (кроме как у Вас) нормальные люди так и делают - пишут для объекта вызов новой функции по событию onreadystatechange.

Но у Вас ведь всё не как у людей - Вы свой велосипед изобретаете...

Посмотрите работающий пример - http://codecenter.awardspace.com/selects.html

  Ответить  
 
 автор: maxfade   (06.08.2010 в 09:40)   письмо автору
 
   для: АЯ   (06.08.2010 в 09:16)
 

Большое спасибо. Исправлюсь :)

  Ответить  
Rambler's Top100
вверх

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