我使用JQuery UI
自动填充小工具向用户显示在我的搜索栏中输入的建议搜索。但是,我遇到了一个问题,即当用户键入内容时,结果不会显示给用户。
这是我的script
:
var $j = jQuery.noConflict();
$j(document).ready(function(){
$j("#tag_search").autocomplete({
source:'autocomplete_tags.php',
dataType: 'json',
minLength:1
});
});
这是autocomplete_tags.php
:
require_once '../includes/preheader.php';//connects to db
$term = $_GET["term"];//Get the search terms.
//Select tags from the database based on the specified search keyword
$query = "SELECT * FROM tag WHERE NAME LIKE '".$term."%' ORDER BY NAME ASC";
$json=array();
$db->query($query);//Query the DB.
//Parse through the results and store in an array
while($db->next()){
$json[]=array(
'id' => $db->get('id'),
'value'=>$db->get("name"),
'label'=>$db->get("description")
);
}
//Autocomplete JQuery UI expects a Json Array so encode and echo.
echo json_encode($json);
如果我访问此网址,我可以在浏览器中看到一个json
数组,其中包含结果,这让我相信它正常运行,但由于某种原因,结果没有显示。
http://my-site.tld/includes/autocomplete_tags.php?term=ag
输出:
[{"id":"29","value":"Agriculture","label":"This is a tag about agriculture and farming"}]
另外,我已经在我的控制台中检查了用户输入时正确找到该文件,并且我收到了200
响应代码。
有谁知道可能导致这种情况的原因?我在另一个网站上实现了类似功能,但没有问题。这可能是造型问题吗?
答案 0 :(得分:0)
好的,非常愚蠢的我没有意识到这一点,而不是删除这个问题,对于其他可能尝试做同样事情的人,你必须确保包括jquery-ui
css
文件。只需将其放在您网站的标题中即可:
<link rel="stylesheet" href="//ajax.googleapis.com/ajax/libs/jqueryui/1.11.0/themes/smoothness/jquery-ui.css" />
就我上面的帖子而言,所有代码都是正确的并且正常工作,唯一缺少的就是上面的样式表。