Показать сообщение отдельно
  #1 (permalink)  
Старый 29.01.2010, 20:09
Аспирант
Отправить личное сообщение для Neokortex Посмотреть профиль Найти все сообщения от Neokortex
 
Регистрация: 29.01.2010
Сообщений: 39

Вывод Ajax ответов в цикле - проблема
Привет. У меня вот тут проблема есть. Функция пробегает по массиву, если совпадает условие выполняет XMLHttpRequest запрос к php скрипту, который выводит результат работы.

Так вот в чем проблема: GET запросы совершаются, а вывод результатов - нет. И что за ерунда никак не пойму. Целый день бьюсь над этим куском кода. Помогите пожалуйста.

function remove_categ(id_categ){
        // ОБРАБОТКА ЗАПРОСОВ К СКРИПТУ ПО ОДНОМУ

        // выводим надпись в блоке результатов
        document.getElementById('script_results').innerHTML = 'Переносим в ' + id_categ + ' следующие категории:<br />';

        // создаем цикл по всем чекбоксам
        for (var r = document.getElementsByName('remove_checkbox'), j = 0, l = r.length; j < l; j++) {

	// если чекбокс выделен выполняем следующее
            if (r[j].checked == true) {

                // создаем XMLHttpRerquest запрос
                var request_remove = false;
                try {
                    request_remove = new XMLHttpRequest();
                } 
                catch (trymicrosoft) {
                    try {
                        request_remove = new ActiveXObject("Msxml2.XMLHTTP");
                    } 
                    catch (othermicrosoft) {
                        try {
                            request_remove = new ActiveXObject("Microsoft.XMLHTTP");
                        } 
                        catch (failed) {
                            request_remove = false;
                        }
                    }
                }
                if (!request_remove) 
                    alert("Error initializing XMLHttpRequest!");

                // обращение к php скрипту
                 var url = "remove_category.php?kakoi=" + r[j].value + "&kuda=" + id_categ;                  
                request_remove.open("GET", url, true);
				
                request_remove.onreadystatechange = function(){ 

                    // если ответ есть обновляем содержимое в блоке результатов
                    if (request_remove.readyState == 4) { 
                        var out = request_remove.responseText; 
                        document.getElementById("script_results").innerHTML = out + document.getElementById("script_results").innerHTML; // соединяем старые результаты с новыми (формирование отчета "на лету")  
                    };  
                            };  

                request_remove.send(null);
            };
            };
        };


Так вот все работает, а результат выводит только по последнему запросу

Последний раз редактировалось Neokortex, 29.01.2010 в 20:31.
Ответить с цитированием