Функция автозаполнения прикреплена к этому полю ввода с id = "search". Когда я печатаю текст, ничего не появляется, в отличие от результатов поиска, которые появились несколько раз, прежде чем я использовал календарь JQuery UI на другом текстовом поле в другом файле.JQuery Autocomplete not loading
Консоль разработчика в CHROME и Firebug в Firefox не показывает ошибок и отображает «XHR завершена загрузка». Я не знаю, что пошло не так! Пожалуйста помоги.
default.php
<script src="jquery-1.9.1.js"></script>
<script src="jquery-ui-1.10.3.custom.min.js"></script>
<script src="myfunctions.js"></script>
<link rel="stylesheet" type="text/css" href="jquery-ui-1.10.3.custom.min.css"/>
<link rel="stylesheet" type="text/css" href="main.css"/>
<div id="search_container"><input type="text" onkeyup="showHint(this.value)" id="search" placeholder="Search here"/></div>
myfunctions.js
function showHint(strvalue)
{
$("#search").autocomplete({
minLength:2,
source: "getHint.php?search="+strvalue,
select:function(ui)
{
log(ui.item?
window.location.replace(ui.item.link):
"Not Found");
}
}
).data("ui-autocomplete")._renderItem = function (ul, item) {
return $("<li></li>")
.data("item.autocomplete", item)
.append("<a>" + item.label + "</a>")
.appendTo(ul);
};
}
getHint.php
<?php
require_once 'myfunctions.php';
$search=sanitizeString($_GET['search']);
$query="Select * from students where firstname like '%$search%' or lastname like '%$search% order by firstname'";
$result= queryMysql($query);
$k=0;
while($row= mysql_fetch_array($result))
{
$email=$row['email'];
$name=nameOf($email);
$studentid=studentidOf($email);
$as[]['label']="<a style='text-decoration:none' href='student_profile.php?studentid=$studentid'><div class='search_elements'><span class='search_elements_span'>$name</span></div></a>";
$as[$k++]['value']=$name;
}
header('Cache-Control: no-cache, must-revalidate');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Content-type: application/json');
echo json_encode($as);
main.css
#search_container
{
position: relative;
top:1px;
left:750px;
width:250px;
}
#search
{
font-family: cursive;
font-size: 14px;
color: #999999;
width:250px;
position:relative;
background: white;
z-index: 11;
top: 1px;
}
#search:focus
{
font-family: cursive;
font-size: 14px;
width: 250px;
color: black;
}
На проверке кода в браузере, текстовое поле показывает ввод следующих после я поиска элемента:
<input id="searchstr" class="ui-autocomplete-input" type="text" placeholder="Search here" name="searchstr" autocomplete="off"></input>
Почему это атрибут автозаполнения установлен в положение «выключено» ??
Вы проверили содержание запроса AJAX? Ответ с заголовком 200 OK не означает, что ответ в порядке. –
@Mathletics Текстовая область ввода имеет идентификатор 'search' – kamal0808
@dragoste - Да, я проверил все запросы вручную на MySQL. Кроме того, поиск автозаполнения работал отлично один раз, и после этого я не внес никаких изменений в файл PHP! – kamal0808