Как использовать AJAX в IE - PullRequest
       1

Как использовать AJAX в IE

1 голос
/ 23 февраля 2012

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

Вот мой сценарий:

<script type="text/javascript">
 function getXML()
{
var req;
try {
    req = new XMLHttpRequest();
} catch (trymicrosoft) {
    try {
      req = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (othermicrosoft) {
      try {
        req = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (failed) {
        req = null;
      }
    }
}

if (!req){

  return null;
} else {
   return req;
}
}
 function filter(month, year)
 {


if(getXML()){
 var xmlhttp = getXML();
 xmlhttp.onreadystatechange=function()
{
   if (xmlhttp.readyState==4 && xmlhttp.status==200)
 {
 document.getElementById("mandayTable").innerHTML=xmlhttp.responseText;
  }

}
 xmlhttp.open("GET","ajax/filterMandays.php?m="+month+"&y="+year,true);
xmlhttp.send();
} else {
alert("Error initializing XMLHttpRequest!");
}
}

</script>

а вот мой ajax php

<?php

        $q = "SELECT md.mandays_id,md.employeenum,md.month,md.year,md.required_man_days,d.firstname,d.lastname 
        FROM tbl_mandays md,tbl_employee_details d 
        WHERE md.active = '1' 
        AND md.employeenum = d.employeenum 
        AND md.month = '10';"; //employee_details WHERE approver = 0"



        $res = $db->Execute($q);

        echo "<table border = 1>";

        echo "<tr><th>Employee Number</th><th>First Name</th><th>Last Name</th><th>Month-Year</th><th>Required Man Days</th><th>Edit/Delete</th></tr>";

    /while($rows = $res->FetchRow()) 
        for($i=0;$i<5;$i++)
        {
                                                    $mandays_id = $rows[0];

                        $empnum = $rows[1];

                        $month_year = $rows[2] ."-" .$rows[3];

                        $required_man_days = $rows[4];

                        $firstname = $rows[5];

                        $lastname = $rows[6];

                                                    echo "<tr><td>".$empnum  . "</td><td>".$firstname ."</td><td>".$lastname ."</td><td>" . $month_year ."</td><td>" .$required_man_days  . "</td><td width = \"200\" align = \"center\"><a href = 'edit_mandays.php?mandays_id=$mandays_id');'>Edit/Delete</a></td></tr>";
        }



        echo "</table>";

        ?>

Проблема в том, что на первом "ONCHANGE" он ничего не делает. на втором "ONCHANGE" заголовки таблицы в коде php - единственные, которые вызываются.

Я также попытался сделать это без запроса и изменить цикл на for ($ i = 0; $ i <5; $ i ++) и изменил отображаемые значения на «1», но все равно он не входит в Лоо [и отобразить его. </p>

в чем проблема? (

Ответы [ 2 ]

3 голосов
/ 23 февраля 2012

Начните здесь: https://developer.mozilla.org/en/AJAX/Getting_Started, Mozilla объясняет правильный способ сделать это в браузерах. Позже вы можете рассмотреть jQuery для кросс-браузерной совместимости, как только вы изучите основы

1 голос
/ 23 февраля 2012

Скачайте и используйте jQuery для своего сайта: http://docs.jquery.com/Downloading_jQuery#Download_jQuery

И тогда ваш код будет выглядеть примерно так:

$('.mydropdown').change(function(){
  //get values for month, year
  $.ajax({
    url: "ajax/filterMandays.php?m="+month+"&y="+year,
    type: "GET",
    success: function(data){
      //data is returned back
      $('#mandayTable').html(data);
    }
  });

});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...