Javascript http проблема запроса - PullRequest
0 голосов
/ 05 июля 2011

Я хочу получить автоматический результат поиска, и на одной странице он работает, а на другой - нет.Не могли бы вы сказать мне, в чем проблема?

РАБОТАЕТ:

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 входа.

Заранее спасибо!

Ответы [ 4 ]

1 голос
/ 05 июля 2011

Я думаю, это проблема с кодировкой URL.Попробуйте кодировать:

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

Также обратите внимание, что в вашей конкатенации строк отсутствует +.

1 голос
/ 05 июля 2011

Возможно, потому что вы используете две переменные в методе функции с одинаковым именем и пропускаете знак ПЛЮС в вашем методе xmlhttp.open () ...

Попытка:

function showUser(str, str2) {
   ...code...
   xmlhttp.open("GET", "klanttabel.php?search="+str+"&search2="+str2, true);
   xmlhttp.send();
}

Еще одно предложение, сделать вызовы Ajax намного проще при использовании JQuery.

$.ajax({
   type: "GET",
   url: "klanttabel.php",
   data: ({search : str,
           search2 : str2}),
   success: function(data) {
     $('#txtHint').html(data);
   }
});
0 голосов
/ 05 июля 2011

Вам не хватает знака плюс

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

знак плюс после первой строки

xmlhttp.open("GET","klanttabel.php?search="+str+"&search2="+str,true);
0 голосов
/ 05 июля 2011

Ваши параметры названы одинаково ... измените их.

function showUser(strA,strB)

и измените их позже в функции:

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

У вас также была ошибка, где + пропал без вести.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...