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

时间:2016-10-18 15:01:18

标签: 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"}]

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

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

当然,我最大的问题是我无法以表格形式发送身份证号码(Num)

Javascript我正在使用自动填充名称:

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

1 个答案:

答案 0 :(得分:1)

您需要更改返回对象,使其与规范here

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

这应该会产生一个带有&#39;标签的对象数组。和&#39;价值&#39;键。这适用于您的自动填充功能。