Я использую простой скрипт «живого поиска», который отображает результаты из базы данных MySQL, когда пользователь вводит текстовое поле. Это прекрасно работает, если Javascript указывает на совершенно отдельную страницу, но мне нужно, чтобы он указывал на ту же страницу. К сожалению, когда я пытаюсь сделать это, страница дублируется внутри себя, поскольку результаты генерируются.
Это работает как ожидалось:
Document called: "test.php" containing JavaScript below and test2.php containing the PHP code
xmlhttp.open("GET","test2.php?livesearch="+str,true);
xmlhttp.send();
Это создает страницу на странице:
Document called: "test.php" containing both the JavaScript and PHP code below
xmlhttp.open("GET","?livesearch="+str,true);
xmlhttp.send();
Я понимаю, что это потому, что он сам открывается в цикле, но я не уверен, что я должен изменить в коде, чтобы избежать этого. Любая помощь будет принята с благодарностью, так как я не нашел много помощи через Google.
Вот весь мой код:
Javascript
function showResult(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("livesearch").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","&livesearch="+str,true);
xmlhttp.send();
}
Код PHP
if(isset($_GET['livesearch'])) {liveSearch();}
function liveSearch() {
$q=$_GET["livesearch"];
$sqlQuery = "SELECT * FROM something WHERE something LIKE '%" . $q . "%' ;
etc etc etc
}