我有以下用于自动完成的jQuery代码,
$( "#text" ).autocomplete({
source: function( request, response ) {
$.ajax({
type: 'GET',
url: 'server.php',
dataType: 'json',
data: {
input: request.term
},
success: function(data) {
response( $.map(data, function(item) {
return {
label: item.Symbol + " - " + item.Name + " ( " + item.Exchange + " )"
}
}));
}
});
},
minLength: 1,
select: function( event, ui ) {
var symbol = ui.item.label.split(' ');
setTimeout(function() {
$('#text').val(symbol[0]);
},0);
}
});
每当用户在文本框中输入键时,就会对PHP文件进行AJAX调用。此PHP文件将从API检索数据,并更新自动完成功能的建议列表?
我在PHP端有以下代码,
<?php
if(!empty($_GET['term'])) {
$term = $_GET['term'];
$url = "http://dev.markitondemand.com/MODApis/Api/v2/Lookup/json?input=".$term;
$j_response = file_get_contents($url);
$j_response = json_decode($j_response);
print json_encode($j_response);
}
?>
出于某种原因,自动完成对我不起作用——我在这里做错了什么?
在PHP中,您试图使用$_GET['term']
,但在JavaScript中,您的变量被称为input
。将数据对象更改为使用term
而不是input
:
data: {
term: request.term
},