我想获得一个自动搜索结果,在一个页面上它可以工作但在另一个页面上却没有。你能告诉我什么问题吗?
WORKING:
function showUser(str)
{
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","ordertabel.php?search="+str,true);
xmlhttp.send();
}
不工作:
function showUser(str,str)
{
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","klanttabel.php?search="+str"&search2="+str,true);
xmlhttp.send();
}
请注意,使用NOT工作代码时,有2个输入。
提前致谢!
答案 0 :(得分:1)
可能是因为你在函数方法中使用了两个具有相同名称的变量,而你在xmlhttp.open()方法中缺少一个PLUS符号......
尝试:
function showUser(str, str2) {
...code...
xmlhttp.open("GET", "klanttabel.php?search="+str+"&search2="+str2, true);
xmlhttp.send();
}
另一个建议是,在使用JQuery时进行Ajax调用会更容易。
$.ajax({
type: "GET",
url: "klanttabel.php",
data: ({search : str,
search2 : str2}),
success: function(data) {
$('#txtHint').html(data);
}
});
答案 1 :(得分:1)
我猜这是一个网址编码问题。尝试编码:
xmlhttp.open("GET", "klanttabel.php?search=" + encodeURIComponent(str) + "&search2=" + encodeURIComponent(str), true);
另请注意,您在字符串连接中缺少+
。
答案 2 :(得分:0)
您的参数名称相同......更改它们。
function showUser(strA,strB)
稍后在函数中更改它们:
xmlhttp.open("GET","klanttabel.php?search=" + strA + "&search2=" + strB,true);
如果缺少+
,您也会遇到错误。
答案 3 :(得分:0)
你缺少加号
xmlhttp.open("GET","klanttabel.php?search="+str"&search2="+str,true);
第一次str后加号
xmlhttp.open("GET","klanttabel.php?search="+str+"&search2="+str,true);