我遇到了使用远程数据源的JQuery Autocomplete问题。我看到每次开始输入都有请求,但是,我没有得到任何可见的JQuery输出。有人可以帮忙吗?
perfomrs搜索的代码:
$term=$_GET['term'];
$query = "SELECT Items.ItemID, Items.ItemCode, Items.ItemDescription FROM
Items WHERE Items.ItemCode LIKE '%$term%' ";
$stmt = $db->prepare($query);
$stmt->execute();
$stmt->store_result();
$numrows = $stmt->num_rows;
$stmt->bind_result($ItemID, $ItemCode, $ItemDescription);
for ($i=0; $i <$numrows; $i++) {
$stmt->fetch();
$arr[] = array(
"value" => strval($ItemCode),
"label" => strval($ItemDescription)
);
}
header("Content-Type", "application/json");
echo json_encode($arr);
我得到以下JSON输出:
[{"value":"1085","label":"Item1"},{"value":"2089","label":"Item2"}]
我有以下JQuery代码:
<script>
$( function() {
function log( message ) {
$( "<div>" ).text( message ).prependTo( "#log" );
$( "#log" ).scrollTop( 0 );
}
$( "#items" ).autocomplete({
source: function( request, response ) {
$.ajax( {
url: "../items-search.php",
dataType: "jsonp",
data: {
term: request.term
},
success: function( data ) {
response( data );
}
} );
},
minLength: 1,
select: function( event, ui ) {
log( "Selected Item: " + ui.item.value );
}
} );
} );
</script>
div的HTML:
<div>
<label for="items">Item: </label>
<input id="items">
</div>
<div>
Result:
<div id="log"></div>
</div>
答案 0 :(得分:0)
在您的HTML中,您的ID为birds
,但无法识别items
。您是否有可能复制了jQuery UI示例并忘记更改它? : - )
答案 1 :(得分:0)
我实际上是靠自己想出来的。我将jsonp
更改为json
并且有效。