jQuery自动完成显示空结果
我有这个PHP脚本来从我的数据库中获取所有患者姓名:
prepare($getPatients); $execGetPatients->bindValue(':cid', $cid); $execGetPatients->execute(); $getPatientsResult = $execGetPatients->fetchAll(); $i = 0; foreach($getPatientsResult as $result) { $res[$i] = $result; $i++; } echo json_encode($res); ?>
我有一个文本框,我想使用jquery-ui
自动完成库将patient_name
显示为自动完成。
这是我的jQuery脚本:
$(document).ready(function() { $( "#searchTxt" ).autocomplete({ source: "../php/autoComplete.php" }); })
我可以看到,如果在网络选项卡上键入一个名称,我可以看到返回的数组:
但是在文本框中我看到自动完成是空的,如下图所示:
它显示2个白色方框而不是返回数组的白色方框
对于那种结果,这是一个很好的插件: https : //twitter.github.io/typeahead.js/
我认为它是因为您传递的数据,似乎有多个列,您需要指定label
和value
或者它应该是简单数组(根据您的代码应该是这种数据)
var availableTags = [ "ActionScript", "COBOL", "ColdFusion", ];
您可以查看有关自定义字段传递的更多信
Twitter typeahead.js
是实现此function的最佳选择。
请使用PHP
, AJAX
和TypeAhead.js
链接到TypeAhead.js
如果您需要任何帮助,请告诉我。
因为你需要在你的json数组中提交标签和值,所以你的sql会是,
$getPatients = "SELECT *, name as label, id as value FROM patient WHERE clinic_id = :cid ORDER BY patient_id DESC";