我正在使用脚本来显示数据库中的文本,这在Chrome中运行得很好,但在Explorer和Firefox中却不行。问题可能在于特殊字符(UTF 8)。 即名字选择彼得在IE / FF中工作正常,并显示彼得信息,但Désiree没有显示任何Désiree信息(但它存在且Chromes显示它),这可能是由特殊的é-字符引起的。 因此,HTML标题和脚本代码,希望有人能为我提供正确的解决方案吗?
<head>
<link rel='stylesheet' type='text/css' href='css/ola.css' />
<link rel='stylesheet' type='text/css' href='css/ola_table.css' />
<meta http-equiv="content-type" content="text/html; charset=utf-8"></meta>
</head>
--+--
<script>
function showUser(str, strKlas, strPer)
{
//alert("Binnen: " + str + " - Klas: " + strKlas + " - Periode: " + strPer);
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","getuser.php?klas="+strKlas+"&periode="+strPer+"&q="+str,true);
//xmlhttp.open("GET","getuser.php?klas=4B1&periode=1&q="+str,true);
xmlhttp.send();
}
</script>
答案 0 :(得分:0)
在IE11之前,Internet Explorer不会自动URLEncode传递给XmlHttpRequest对象的open
方法的URL参数中的字符。
您应该使用encodeURIComponent
方法明确地对网址进行编码。
所以:
xmlhttp.open("GET","getuser.php?klas=" + encodeURIComponent(strKlas) +
"&periode=" +encodeURIComponent(strPer) +
"&q="+encodeURIComponent(str), true);