我已将问题隔离到我的ajax,不允许将&符号插入到查询中。因此,例如输入的str或字符串是Fish&芯片。只有Fish Shows。
function showBrand(str) {
var xmlhttp;
if (str=="") {
document.getElementById("txtBrand").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("txtBrand").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","getBrand.php?q="+str,true); // <-- Problem?
xmlhttp.send();
}
当查询被发送到getBrand.php时,以及当您输入&amp;符号它将它转换为url im中的变量。在ajax很糟糕我不知道如何解决这个问题..任何人都有任何建议吗?
答案 0 :(得分:1)
试试这个:
xmlhttp.open("GET","getBrand.php?q="+encodeURIComponent(str),true);
答案 1 :(得分:1)
&
用于分隔查询字符串中的多个参数。您需要使用encodeURIComponent
来确保参数中的所有特殊字符都已编码。
xmlhttp.open("GET","getBrand.php?q="+encodeURIComponent(str),true);