За последние 24 часа нас посетили 18446 программистов и 1612 роботов. Сейчас ищут 1859 программистов ...

AJAX - не подгружается ответ

Тема в разделе "JavaScript и AJAX", создана пользователем mawa, 18 май 2009.

  1. mawa

    mawa Активный пользователь

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    Добрый день! Все время работал под Mozilla, решил запустить под IE - не хочет работать! Суть проблемы такова:
    есть на страничке динамический select_1, результат которого должен подгружаться во второй select_2, ну а со второго - в третий. В Mozilla все работает отлично. Пробую в IE - после изменения в первом select_1 - второй становится активным, но пустым.
    Вот код:
    [js]
    function makeRequest_5(url_5)
    {
    // создание объекта для разных браузеров
    var http_request_5 = false;
    if (window.XMLHttpRequest)
    {
    http_request_5 = new XMLHttpRequest();
    if (http_request_5.overrideMimeType)
    {
    http_request_5.overrideMimeType('text/xml');
    }
    }
    else if (window.ActiveXObject)
    {
    try
    {
    http_request_5 = new ActiveXObject("Msxml2.XMLHTTP");
    }
    catch (e)
    {
    try
    {
    http_request_5 = new ActiveXObject("Microsoft.XMLHTTP");
    }
    catch (e) {}
    }
    }

    // если объект не создан
    if (!http_request_5)
    {
    alert('Не вышло Невозможно создать экземпляр класса XMLHTTP '); // выдаём сообщение.
    return false;
    }
    var id_5 = document.getElementById("select_5").value; //значение выбранное в первом селекте(subject)
    if (id_5 != 0) // Если выбран НЕ первый пункт
    {
    //alert(id_3);
    http_request_5.onreadystatechange = function() { alertContents_5(http_request_5); }; // функция-обработчик
    http_request_5.open('GET', url_5+"?id_5="+id_5, true); //сам запрос в виде ("тип_запроса", "адрес", "асинхронность")
    http_request_5.send(null); //отправка дополнительных параметров
    }
    else
    {
    document.getElementById("select_6").disabled = true; // если выбрали первый пункт закрываем селект
    document.getElementById("select_7").disabled = true;
    //document.getElementById("select_8").disabled = true;
    //document.getElementById("select_8").style = "none";
    select_8.style.display="none";
    }
    }
    function alertContents_5(http_request_5)
    {
    if (http_request_5.readyState == 4) // если состояние "выполнено"
    {
    if (http_request_5.status == 0 || http_request_5.status == 200) // если не возвращено никакой ошибки
    {
    var select_6 = document.getElementById("select_6"); // select с id="mySelect"

    select_6.disabled = false; // делаем его возможным к выбору
    select_6.innerHTML = http_request_5.responseText;
    }
    else
    {
    return false;
    }
    }
    }
    [/js]
     
  2. zheka_13

    zheka_13 Активный пользователь

    С нами с:
    1 май 2009
    Сообщения:
    71
    Симпатии:
    0
    балин на три селекта 202 строчки кода ..... я не смогу помочь...
     
  3. vital

    vital Активный пользователь

    С нами с:
    18 дек 2006
    Сообщения:
    162
    Симпатии:
    0
    Адрес:
    Минск
  4. mawa

    mawa Активный пользователь

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    Так луче???
     
  5. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    JSHttpRequest, JQuery
     
  6. mawa

    mawa Активный пользователь

    С нами с:
    23 сен 2008
    Сообщения:
    100
    Симпатии:
    0
    Mr.M.I.T. Подскажите, пожалуйста, я по вашему совету использовал JSHttpRequest, но столкнулся с такой проблемой:
    в IE результат файла-обработчика не хочет возвращаться, если в ответ выводить форму (выдает ошибку - "Неизвестная ошибка выполнения" и указывает на строку где происходит вывод результата). Вот код:
    [js]
    function makeRequest_12()
    {
    JsHttpRequest.query('rezult_3.php', // backend
    {
    'id_10': document.getElementById("select_10").value,
    'id_11': document.getElementById("select_11").value,
    'id_12': document.getElementById("select_12").value
    },
    function(result, errors)
    {
    if (result)
    {
    document.getElementById("ans_3").innerHTML = result["rezult_3"];
    }
    },
    false
    );
    }
    [/js]
    А в зтой строке выдает ошибку:
    [js]
    document.getElementById("ans_3").innerHTML = result["rezult_3"];
    [/js]
    В Mozilla все работает. Если я комментирую строки с формой, то все работает. Подскажите как можно вывести форму, а то очень надо.