За последние 24 часа нас посетили 18370 программистов и 1613 роботов. Сейчас ищут 1945 программистов ...

Проблема с Ajax запросом в IE и Opera

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

  1. flash_uz

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

    С нами с:
    12 ноя 2008
    Сообщения:
    21
    Симпатии:
    0
    Здравствуйте, у меня проблема с ajax запросом в IE и в OPERA. В IE8 все работает отлично, но в 6 и 7 выдается ошибка "Неизвестная ошибка выполнения". А в OPERA версии 9.23 и ниже запрос тоже не работает, работает только в версии 9.63 и выше!
    Вот код :


    [js]

    var doc;
    function vibor(sel) {
    var id = sel.options[sel.selectedIndex].value;
    if(window.navigator.appName=="Microsoft Internet Explorer") {
    doc = new ActiveXObject("Microsoft.XMLHTTP");
    }
    else {
    doc = new XMLHttpRequest();
    }
    doc.onreadystatechange = changeOutmenu;
    doc.open("GET", "ajax.php?idcat=" + encodeURIComponent(id) + "&url=" + new Date().getTime(), true);
    doc.send(null);
    }


    function changeOutmenu() {
    if (doc.readyState == 4){
    document.getElementById("menu").style.visibility = "visible";
    document.getElementById("menu").innerHTML = doc.responseText;//вот здесь IE выдает ошибку "Неизвестная ошибка выполнения"
    document.getElementById("load").innerHTML = "";
    //alert(doc.responseText);
    }
    else {
    document.getElementById("menu2").style.display = "none";
    document.getElementById("menu").style.visibility = "hidden";
    document.getElementById("load").innerHTML = "<center><img src='images/ajax-loader1.gif'></center>";
    }
    }
    [/js]

    вот код откуда должна вызываться функция
    PHP:
    1.  
    2.  
    3.  <li>
    4.               <label for="category">Category:<em>*</em></label>
    5.               <select id="category" name="category"  onchange='vibor(this)'>
    6.                 <?
    7.                     $qv=mysql_query("SELECT * FROM menu WHERE idcat=1");
    8.                     while($row=mysql_fetch_array($qv)) {                           
    9.                         echo("<option id='$row[0]'  value='$row[0]'>$row[namemenu]</option>");     
    10.                     }
    11.                 ?>
    12.               </select>
    13.             </li>
    14.             <li>
    15.               <label for="menu2">Sub-category:<em>*</em></label>
    16.              <select   name="menu" id="menu2">
    17.                             <?
    18.                             $qv=mysql_query("SELECT * FROM podmenu WHERE idmenu=29");
    19.                                 while($row=mysql_fetch_array($qv)) {
    20.                            
    21.                            
    22.                                 echo("<option id='$row[0]'  value='$row[0]'>$row[name]</option>");
    23.                            
    24.                                
    25.                                 }
    26.                             ?>
    27.              </select>
    28.              <span id="menu"></span><span id="load"></span>
    29.             </li>
    30.  
    И код ajax.php
    PHP:
    1.  
    2.  
    3. if (isset($_GET['idcat'])) {
    4.     $qv=mysql_query("SELECT * FROM podmenu WHERE idmenu=$_GET[idcat]");
    5.     echo("<select name='menu'>");
    6.     while ($row=mysql_fetch_array($qv)) {
    7.         echo("<option value='$row[0]'>$row[name]</option>");   
    8.     }  
    9.     echo("</select>");
    10. }
    11.  
     
  2. shreck

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

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    чем jQuery не устраивает?
    Зачем изобретать велосипед?
     
  3. kostyl

    kostyl Guest

    и это нельзя так делать короче, убери
     
  4. flash_uz

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

    С нами с:
    12 ноя 2008
    Сообщения:
    21
    Симпатии:
    0

    Да у нас тут сейчас проект стоит так что времени нет разбираться с jQuery, да и при том у меня только эта функция сейчас не работает. Так что если можешь помоги пожалуйста
     
  5. flash_uz

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

    С нами с:
    12 ноя 2008
    Сообщения:
    21
    Симпатии:
    0

    А почему? Там же запрос идет
     
  6. kostyl

    kostyl Guest

    SQL инъекция, если не знаешь ищи тут полно инфы
     
  7. flash_uz

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

    С нами с:
    12 ноя 2008
    Сообщения:
    21
    Симпатии:
    0
    Спасибо за совет! А по моему основному вопросу можешь чем нибудь помочь, а то че-то я не знаю в чем может быть проблема
     
  8. shreck

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

    С нами с:
    7 авг 2007
    Сообщения:
    479
    Симпатии:
    0
    Адрес:
    Россия, Саратов
    [js]
    <script>
    function request_order_load(DId, OrdId, DT) {

    $.post('actions/RequestOrderLoad.php',
    {
    DealerId: DId,
    OrderId: OrdId,
    LoadDate: DT
    }, change_order_load_result, 'json');

    }
    </script>
    [/js]
    change_order_load_result - callback-функция

    Вот пример ajax запроса из кода одного из моего проектов. Разве сложно?

    к сожалению использую jQuery.
     
  9. flash_uz

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

    С нами с:
    12 ноя 2008
    Сообщения:
    21
    Симпатии:
    0
  10. flash_uz

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

    С нами с:
    12 ноя 2008
    Сообщения:
    21
    Симпатии:
    0

    Спасибо большое!