Ajax代码无法在IE中运行。但在所有其他浏览器中都可以

时间:2013-01-04 05:08:23

标签: php javascript ajax

  

可能重复:
  script not working in Ajax returned value

我正在使用ajax来获取一些数据。有一个链接“显示该用户的项目”。虽然它上面会调用带有参数'userid'的函数'callfunc'。这个ajax函数将去getdetails。 php和将获取相应用户的一些细节。

<tr><td colspan="6" align="right"><a href="javascript:callfunc(<?= $row5[user_id]; ?>)" style="font-size:10px;">Show items of this user</a></td></tr>


<script type="text/javascript">
function callfunc(str)
{

//alert(str);
if (str.length==0)
{ 
document.getElementById("result").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("result").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getdetails.php?cid="+str,true);
xmlhttp.send();
}

getdetails.php

<?php
require 'include/connect.php';
$cid=$_GET['cid'];
$sql="select * from table where status='Active' and user_id=$cid";
$res=mysql_query($sql); 
$tot=mysql_num_rows($res);
if($tot>0){
while($row=mysql_fetch_array($res))
{
echo '<tr class="detail9txt" height="30"> 
      <td width="2%"><input type="checkbox" name="item" id="item" value="'.$row[item_id].'"></td>
      <td align="center" width="12%" style="vertical-align:baseline;">
        <a href="detail.php?item_id='.$row[item_id].'" id="link3">'.$row['title'].'</a>
      </td> 
<td align="center" width="17%" style="vertical-align:baseline;">
'.substr($row['des'], 0, 20).'
</td></tr>';
}
?>

此代码在mozilla,chrome和opera中正常工作。但不能在IE中工作。点击“显示此用户的项目”链接时,IE中没有任何反应。任何想法?

2 个答案:

答案 0 :(得分:0)

看看Jquery ajax()。它几乎支持每个浏览器。请注意,在ie9之前,对于所有IE浏览器,Jquery的下一版本1.9版将为dropping support

$.ajax({
  type: "GET",
  url: "getdetails.php",
  data: { cid : str }
}).done(function(response) {
  $('#result').text() = response;
});

答案 1 :(得分:-1)

  <script type="text/javascript">
    function callfunc(str)
    {
    try{
    var ox = ((window.XMLHttpRequest) ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP"));
            if (ox) {
                ox.open("GET", "getdetails.php?cid="+str);
                ox.setRequestHeader("Content-Type", "text/html");
                ox.setRequestHeader("Connection", "close");
                ox.onreadystatechange = function () {
                    if (ox.readyState == 4) {
                        if (ox.status == 200) {
                            eval(callback_function + "('" + escape(ox.responseText) + "')");
                        } else {
                           alert(ox.readyState);
                           alert(ox.stauts);
                        }
                    }
                }
                ox.send(null);
            }
    }catch(e){
    alert(e.Message);
    }

    }

</script>

尝试此代码至少会在浏览器中提供状态或任何错误....