具有自动完成功能的搜索框 jQuery - 更新
Search Box with autocomplete jQuery - Update
我正在尝试实现具有自动完成功能的即时搜索框 (jQuery)。正在从数据库中获取数据。我可以看到它正在通过,但由于某种原因,自动完成功能无法正常工作。
HTML
<div class="ui-widget">
<label style="color: white" for="searchBar">Skills: </label>
<input id="searchBar">
</div>
PHP - 超薄框架
$app->get('/ajaxsearchbox', function() {
//$query = $_REQUEST['query'];
$query = $_GET['query'];
if (isset($query)) {
$sql = DB::query("SELECT * FROM players WHERE playerName LIKE '%$query%'");
foreach ($sql as $result[]) ;
};
echo json_encode(array("result" => $result));
});
jQuery
$(document).ready(function() {
$( "#searchBar" ).autocomplete({
source: function(request, response) {
$.getJSON("/ajaxsearchbox",{ query:request.term},response);
},
minLength: 0
});
})
使您的 Get 请求 return 更简单的数据
$app->get('/ajaxsearchbox', function() {
//$query = $_REQUEST['query'];
$query = $_GET['query'];
if (isset($query)) {
$sql = DB::query("SELECT * FROM players WHERE playerName LIKE '%$query%'");
foreach ($sql as $result[]) ;
};
echo json_encode($result);
});
在此之后,在您的 Jquery 自动完成中添加自定义渲染,例如:
$(document).ready(function() {
$( "#searchBar" ).autocomplete({
source: function(request, response) {
$.getJSON("/ajaxsearchbox",{ query:request.term},response);
},
minLength: 0,
select: function( event, ui ) {
$( "#searchBar" ).val( ui.item.playerName );
},
}).autocomplete( "instance" )._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<div>PlayerName : " + item.playerName + "</div>" )
.appendTo( ul );
};
} );
}
)
检查此 link 以了解有关处理自定义数据的更多信息 http://jqueryui.com/autocomplete/#custom-data
我正在尝试实现具有自动完成功能的即时搜索框 (jQuery)。正在从数据库中获取数据。我可以看到它正在通过,但由于某种原因,自动完成功能无法正常工作。
HTML
<div class="ui-widget">
<label style="color: white" for="searchBar">Skills: </label>
<input id="searchBar">
</div>
PHP - 超薄框架
$app->get('/ajaxsearchbox', function() {
//$query = $_REQUEST['query'];
$query = $_GET['query'];
if (isset($query)) {
$sql = DB::query("SELECT * FROM players WHERE playerName LIKE '%$query%'");
foreach ($sql as $result[]) ;
};
echo json_encode(array("result" => $result));
});
jQuery
$(document).ready(function() {
$( "#searchBar" ).autocomplete({
source: function(request, response) {
$.getJSON("/ajaxsearchbox",{ query:request.term},response);
},
minLength: 0
});
})
使您的 Get 请求 return 更简单的数据
$app->get('/ajaxsearchbox', function() {
//$query = $_REQUEST['query'];
$query = $_GET['query'];
if (isset($query)) {
$sql = DB::query("SELECT * FROM players WHERE playerName LIKE '%$query%'");
foreach ($sql as $result[]) ;
};
echo json_encode($result);
});
在此之后,在您的 Jquery 自动完成中添加自定义渲染,例如:
$(document).ready(function() {
$( "#searchBar" ).autocomplete({
source: function(request, response) {
$.getJSON("/ajaxsearchbox",{ query:request.term},response);
},
minLength: 0,
select: function( event, ui ) {
$( "#searchBar" ).val( ui.item.playerName );
},
}).autocomplete( "instance" )._renderItem = function( ul, item ) {
return $( "<li>" )
.append( "<div>PlayerName : " + item.playerName + "</div>" )
.appendTo( ul );
};
} );
}
)
检查此 link 以了解有关处理自定义数据的更多信息 http://jqueryui.com/autocomplete/#custom-data