2011-07-05 152 views
-1

我想获得一个自动搜索结果,并在一个页面上工作,但在另一个不是。你能告诉我什么是问题吗?Javascript的http请求问题

工作:

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(); 
} 

请注意,在不工作的代码有2个输入。

在此先感谢!

+0

签收后尝试从地址栏中的URL在浏览器中,或使用萤火看到http流量 – mplungjan

回答

1

我想这是一个url编码问题。尝试编码:

xmlhttp.open("GET", "klanttabel.php?search=" + encodeURIComponent(str) + "&search2=" + encodeURIComponent(str), true); 

还要注意,你缺少你的字符串连接一个+

+0

嗯它现在自动'搜索',但它不会返回任何结果。我可以尝试的任何事情? – Andre

+0

编辑:它的工作原理!非常感谢你! – Andre

1

可能是因为您使用相同名称的函数法两个变量,你在你的xmlhttp.open()方法缺少一个加号......

尝试:

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); 
    } 
}); 
+0

我不知道关于ajax的任何事情,但我想只是复制代码不起作用?其实,我尝试过,但它不起作用。有什么我需要添加,以使阿贾克斯工作? – Andre

+0

是的,你应该在你的项目中包含标准的JQuery库,如下所示:''Then it it将会工作,代码更短,更容易维护或适应您的当前。 – Jules

0

您的参数命名相同...更改它们。

function showUser(strA,strB) 

后来在功能改变他们:

xmlhttp.open("GET","klanttabel.php?search=" + strA + "&search2=" + strB,true); 

你也有一个地方是+丢失的错误。

+0

这不行! – Andre

+0

@AndreWoons什么不行?你有错误吗?... – Fosco

+0

不,我仍然没有自动搜索,如果我从上面的答案中得到一个,它搜索不像你当你点击搜索时一样。 – Andre

0

你缺少加号

xmlhttp.open("GET","klanttabel.php?search="+str"&search2="+str,true); 

加上第一STR

xmlhttp.open("GET","klanttabel.php?search="+str+"&search2="+str,true);