Php 单击名称时显示id的ajax搜索
这段代码以我键入的方式显示名称,当我键入时,它给出名称的建议,当单击它时,它会在文本框中显示结果。但当我从下拉选项中单击该名称时,我希望显示与数据库中该名称相关的id。请帮忙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($
<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;
}
?>
我能想到的最简单的方法是在顶部添加一个idul
<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);
});