Я провел массу исследований и до сих пор не понимаю, как использовать автозаполнение jQuery ui. Автозаполнение не работает, и я не уверен, почему. Любая помощь будет оценена!
У меня есть следующее на фронтенде.
1. JQuery правильно связан.
2. JQuery-UI правильно связаны.
3. JQuery-UI CSS правильно связаны.
<script>
$("#tags").autocomplete({
source: function(request, response){
$.post("/panel/tags.php", {data:request.term}, function(data){
response($.maps(data, function(item) {
return {
label: item.tagName,
value: item.tagID
}
}))
}, "json");
},
minLength: 2,
dataType: "json",
cache: false,
focus: function(event, ui) {
return false;
},
select: function(event, ui) {
this.value = ui.item.label;
/* Do something with user_id */
return false;
}
});
</script>
<div class="ui-widget">
<label for="tags">Tags: </label>
<input id="tags" size="50" />
</div>
На сервере:
$query_tags = "SELECT tagID, tagName FROM DCB_Tags WHERE tagName LIKE '".$_GET['tags']."%' ORDER BY tagName ASC LIMIT 10";
$result_tags = mysql_query($query_tags) or die ("Error: " . mysql_error());
$response = array();
$tags = array();
while($row=mysql_fetch_array($result_tags))
{
$tagID=$row['tagID'];
$tagName=$row['tagName'];
$tags[] = array('tagID'=> $tagID, 'tagName'=> $tagName);
}
header("content-type: text/javascript");
echo json_encode($tags);
exit();
Выход для этого:
[{ "TagID": "1", "тэгу": "искусство"}, { "TagID": "4", "тэгу": "искусство
шоу "}, {" TagID ":" 3" , "тэгу": "исполнитель"}, { "TagID": "2", "тэгу": "дизайн"}]
Если вы открываете страницу с помощью тега = art, это корректно исключает «дизайн».