【发布时间】:2016-10-12 17:34:53
【问题描述】:
我正在使用 jQuery 自动完成插件来提供来自数据库的名称建议。我想要做的是显示一旦选择的人的信息。有人可以告诉我我将如何以及在哪里通过并获取所选人员的 id(主键)吗?
js
$('input[name="name"]').autoComplete({
minChars: 1,
source: function(term, response){
$.getJSON('names.php', { name: term }, function(data){
var arr = $.map(data, function(el) { return el });
response(arr);
});
},
onSelect: function(){
//get id -> show info
}
});
names.php
require 'con.php';
$term = $_GET['name'];
$arr = array();
$query = mysqli_query($connection,
"SELECT
id,
firstname,
middlename,
lastname
FROM mytbl
WHERE firstname LIKE '%$term%' ||
middlename LIKE '%term%' ||
lastname LIKE '%term%'");
while($row = mysqli_fetch_array($query)){
$arr[] = $row['firstname'] . " " . $row['middlename'] . " " . $row['lastname'];
}
echo json_encode($arr);
谢谢!
【问题讨论】:
-
我想如果你要返回一个名字,你可以在其中返回一个
data值。'<span data-userid="'.$row['id'].'">'.$row['firstname'] . " " . $row['middlename'] . " " . $row['lastname'] . " " . $row['extension_name'].'</span>'然后使用.data('userid')抢夺它 -
另外,您的
mysqli_很容易注入。您应该使用准备好的值/参数 -
@Rasclatt 我不知道我是否做得对。 标签显示在建议中。并在选择时返回
<span data-userid=。 -
我没用过自动补全,让我试试你有什么看看。
标签: php jquery mysql json autocomplete