调用php无法在IE中工作

时间:2012-07-13 18:12:31

标签: php javascript ajax onchange

我在html中使用onChange事件启动以下javascript:

我已经通过做一个简单的警报(“工作”)验证了onChange事件是否正在进入javascript;并且IE确实启动了警报,但是我想要的实际代码似乎不起作用。 (它在FF,Chrome,Safari,iPad和Android中的功能)。

该函数的作用是:通过onchange传递给它的值,并将其作为变量发送到php文件。 php文件获取它获得的变量并将其插入到数据库中。我不认为php部分是问题,因为它适用于所有其他浏览器。有没有人有任何见解?

代码:

function showUser(str)
{
if (str=="")
  {
  document.getElementById("txtHint").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("txtHint").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET","http://testest.com/itgoeshere.php?q="+str,true);
xmlhttp.send();
}

我意识到必须为每个标记明确添加值属性,因为您必须为I.E.执行此操作。但我相信我已经做到了......

以下是select语句的示例......

<select name="date" onChange="showUser(this.value)">
<option value="">---</option>
<option value="1">Past hour</option>
<option value="2">Past week</option>
<option value="3">Past month</option>
<option value="4">Past year</option>
</select>

1 个答案:

答案 0 :(得分:1)

嗯..你可以试试jQuery Ajax Function进行测试(jQuery应该支持IE6)。

也许described workaround(修复Internet Explorer和AJAX)可以解决问题。

jQuery Ajax调用:

$.ajax({
  type: "GET",
  url: "getitinhere.php",
  async: true,          
  data: { "str": str },
  success: function(data) {
    alert('Success: '+data);
  },
  error: function(jqXHR, textStatus, errorThrown){  
    alert('Something went wrong' +textStatus);          
  }
}); 

希望这段代码能为您提供帮助;)