我正在使用自动完成功能并从数据库中获取项目。这是我的 JS:
$(".add").autocomplete({
source: function(req, add){
$.getJSON("add.php?callback=?", req, function(data) {
var suggestions = [];
$.each(data, function(i, val){
suggestions.push(val.name);
});
add(suggestions);
});
},
messages: {
noResults: '',
results: function() {}
}
});
我正在发送一个带有“name”和“id”的 PHP 数组。当用户选择它而不去数据库时,我希望能够知道所选项目的 ID,但是我不能在不显示的情况下将其放入源中,这是我不想要的。我希望每个项目自动完成找到一个不可见的 ID,当用户选择它并提交值时,我可以将对象插入数据库中。
这是我的 PHP 文件:
<?php
require('connect.php');
$param = $_GET["term"];
$query = mysqli_query($connection, "SELECT * FROM stuff WHERE name REGEXP '^$param'");
for ($x = 0, $numrows = $query->num_rows; $x < $numrows; $x++) {
$row = mysqli_fetch_assoc($query);
$add[$x] = array("name" => $row["name"], "id" => $row["id"]);
}
$response = $_GET["callback"] . "(" . json_encode($add) . ")";
echo $response;
希望这是有道理的。