我正在尝试将用户ID存储到隐藏字段(类似于value =“userid”),因此我可以在需要提交时使用它。 我有一个自动完成字段,它工作正常但与名字和姓氏一起显示用户ID。
这就是我到目前为止所做的:
HTML表单输入
<input class="typeahead form-control" type="text">
Javascript代码
$('input.typeahead').typeahead({
source: function (query, process) {
return $.get('controllers/ctrl_prova.php', { query: query }, function (data) {
console.log(data);
data = $.parseJSON(data);
return process(data);
})
}
});
PHP代码
$select_user = mysqli_prepare($conn, "SELECT user_id, user_first, user_last FROM users WHERE user_first LIKE '%".$_GET['query']."%' LIMIT 10");
mysqli_stmt_execute($select_user);
mysqli_stmt_bind_result($select_user, $clientid, $clientfirstname, $clientlastname);
$json = [];
while (mysqli_stmt_fetch($seleziona_utente)) {
$json[] = $clientfirstname.' '.$clientlastname.' '.$clientid;
}
echo json_encode($json);
非常感谢
答案 0 :(得分:0)
我设法使用jquery ui而不是typeahead对此进行排序。这是代码
$(document).ready(function(){
var ac_config = {
source:'controllers/ctrl_inbox_client_search.php',
select: function(event, ui) {
$('#id_cliente').val(ui.item.value);
event.preventDefault();
$("#clienti").val(ui.item.label); },
minLength:1
};
$("#clienti").autocomplete(ac_config);
});
现在我遇到的唯一问题是对数据库的查询我需要选择所有具有role =&#39; admin&#39;的用户。以及属于特定组的所有用户,因此我已将此查询用于数据库
SELECT user_id, user_first, user_last, user_role FROM users WHERE user_role = 'admin' UNION ALL SELECT user_id, user_first, user_last, user_role FROM user_group_join LEFT OUTER JOIN users ON user_group_join . user_join_id = users . user_id WHERE user_group_join . group_join_id = 2 AND users . user_id NOT LIKE 59 AND user_role = 'client' AND users . user_first LIKE '%{$term}%' AND users . user_last LIKE '%{$term}%'
问题是如果搜索用户它也显示管理员,即使他们的名字与我在搜索框中输入的名称不同。 有人能帮帮我吗?