javascript - 输入名称后自动完成表单 PHP

标签 javascript php jquery ajax autocomplete

我发现了几个类似的问题,但没有任何相同的“变量”,所以我们开始:

我有一个简单的表单,需要在其中输入姓名,并且需要自动填写表单的其余部分 (ID)。

在数据库中获取数据不是问题,我可以使用 PHP (Search.php) 返回 Json:

//get search term
$searchTerm = $_GET['term'];

//get matched data from table
$query = $db->query("SELECT * FROM info_employer WHERE Prenom LIKE '%".$searchTerm."%' ORDER BY Prenom ASC");
while ($row = $query->fetch_assoc()) {
    $data[] = array( Nom => $row['Prenom'] . ' ' . $row['Nom'], Num => $row['Num'] );
}


//return json data
echo json_encode($data);

这给了我一个如下所示的数组:

[{"Nom":"Andre Nadeau","Num":"104J"},{"Nom":"Andre Potvin","Num":"130J"},{"Nom":"Andre Thibodeau","Num":"91J"}]

friend 告诉我,我应该使用 Jquery 和 Ajax 来使用这个数组来填写我的表单,但我有 2 个问题。

首先,如果我返回一个数组而不是“仅名称”,我的自动完成表单将不再起作用。它给了我 X 个空格(取决于结果的数量)。

当然,我最大的问题是我无法发送表单中的 ID(Num)

我用来自动完成名称的Javascript:

    <script>
    $(function() {
        $( "#Nom" ).autocomplete({
            source: 'Search.php',
        })
    })
</script>

最佳答案

您需要更改返回对象以使其符合规范 here

$data[] = array( "label" => $row['Prenom'] . ' ' . $row['Nom'], "value" => $row['Num'] );

这应该会产生一个带有“label”和“value”键的对象数组。这将与您的自动完成功能一起使用。

关于javascript - 输入名称后自动完成表单 PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40111726/

相关文章:

javascript - 在 JQuery UI 选项卡上添加下拉菜单

php - for 循环只取 mysql 结果的第一个值

php - VARCHAR 不允许使用任何字母 (mySQL)

javascript - 避免 Javascript 中的重复代码 : many buttons for playing audios

javascript - 我有很多重复的 JavaScript 代码,希望得到帮助来清理它

javascript - D3.js - 使用 json 中的嵌套数组绘制图像

javascript - 获取两个路由器上的 session

javascript - 将下划线导航按钮更改为 div

php - 如何验证 VIN 号码?

jQuery 选择具有特定 CSS 的元素