自动完成预先将用户ID存储到隐藏字段中

时间:2017-01-22 11:06:46

标签: javascript php jquery

我正在尝试将用户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);

非常感谢

1 个答案:

答案 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}%'

问题是如果搜索用户它也显示管理员,即使他们的名字与我在搜索框中输入的名称不同。 有人能帮帮我吗?