Php 单击名称时显示id的ajax搜索

Php 单击名称时显示id的ajax搜索,php,jquery,ajax,Php,Jquery,Ajax,这段代码以我键入的方式显示名称,当我键入时,它给出名称的建议,当单击它时,它会在文本框中显示结果。但当我从下拉选项中单击该名称时,我希望显示与数据库中该名称相关的id。请帮忙 <input type="text" name="st_id" id="st_id" ><div id="txtHint" style="position: absolute; width:390px ;"></div> php代码 <?php if (isset($

这段代码以我键入的方式显示名称,当我键入时,它给出名称的建议,当单击它时,它会在文本框中显示结果。但当我从下拉选项中单击该名称时,我希望显示与数据库中该名称相关的id。请帮忙

<input type="text" name="st_id"  id="st_id" ><div id="txtHint"     style="position: absolute; width:390px ;"></div>
php代码

<?php

if (isset($_POST["search"])) {
   $display = '';
    $q = $_POST["search"];
    $stmt = $DBconnect->prepare("SELECT * FROM table1 WHERE First_name   LIKE :sh ");
    $stmt->bindValue(':sh', '' . $q . '%', PDO::PARAM_STR);
    $stmt->execute();
    $display = '<ul class="list-unstyled">';
    foreach ($stmt as $row) {
        if ($row) {
            $display .= '<li>' . $row["First_name"] . '  ' . $row["Middle_name"] . '  ' . $row["Last_name"] . '</li>';
        } else {
            $display .= '<li>name not found</li>';
        }
    }
    $display .= '</ul>';
    echo $display;
}
?>


我能想到的最简单的方法是在顶部添加一个id
ul

<ul id="name_suggestion" class="list-unstyled">
然后将单击侦听器添加到li:

$('#name_suggestion li').on('click', function(e){
    let val = $(this).attr('data-user-id');

    $('#st_id').val(val);
});

我发现你的问题很令人困惑。。。您想要
id
?或者您想使用名称并从数据库中查找名称的
id
?将id包括在
foreach
循环中。然后添加JS,使其在单击时显示。您尝试过什么?当您从建议中选择一个名称时,您需要在搜索时显示相关名称。它应该显示在文本框中而不是名称,是吗?是的,我希望数据库中与名称匹配的id显示在文本字段中
$display .= '<li data-user-id = '. $row["id"] . '>'.$row["First_name"].'  '.$row["Middle_name"].'  '.$row["Last_name"].'</li>';
$('#name_suggestion li').on('click', function(e){
    let val = $(this).attr('data-user-id');

    $('#st_id').val(val);
});