如何在IE中使用AJAX

How to use AJAX in IE

本文关键字:AJAX IE      更新时间:2023-09-26

我使用的是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++),并将要显示的qvalues更改为"1",但它仍然无法进入厕所[并显示它。

问题出在哪里?:(

从这里开始:https://developer.mozilla.org/en/AJAX/Getting_Started,Mozilla解释了跨浏览器执行此操作的正确方法。稍后,在学习了

的基础知识后,您可能会考虑jQuery的跨浏览器兼容性

下载并为您的网站使用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);
    }
  });
});