【发布时间】:2013-07-17 03:59:15
【问题描述】:
无论您键入什么,jquery 自动完成都会显示源中的所有结果,即使它们在输入字段中不包含任何字符。
代码如下。
$('input#project-name').autocomplete({
source: "project-list.php",
minLength: 2,
autoFocus: true
});
源输出这样的json。
[{"value":"sdf"},{"value":"asdas"},{"value":"ANOTHERONE"}]
我已经在谷歌上搜索了一段时间,但我无法弄清楚我做错了什么。非常感谢任何帮助!
更新
感谢大家的回复,但恐怕我没有得到它,对不起。我最近才开始学习这些东西。我的 PHP 目前看起来是这样的。
$userID = $_SESSION['userID'];
$loggedIn = $mysqli->query("SELECT * FROM users WHERE userID = '".$userID."'");
$getRow = "SELECT * FROM projects WHERE projectUserID = '".$userID."'";
if ($loggedIn->num_rows) { // if user is logged in
$projects = array();
if ($result = $mysqli->query("SELECT projectName FROM projects WHERE projectUserID = '".$userID."'")) {
$placeholder = array();
while($row = $result->fetch_object()) {
$placeholder = $row;
array_push($projects, $placeholder);
}
$json = json_encode($projects);
$result = str_replace("projectName", "value", $json);
echo $result;
}
}
但据我了解,我需要以某种方式在其中包含该术语?可以举个例子吗?
更新 2
if (!isset($_REQUEST['term']) )
exit;
$projects = array();
if ($result = $mysqli->query("SELECT projectName FROM projects WHERE projectName = '".$mysqli->real_escape_string($_REQUEST["term"])."'")) {
现在它不会全部返回。事实上,它会返回正确的,但只有在你完全拼出来之后才会返回,这违背了目的。
【问题讨论】:
-
我相信当你使用一个url源时,源应该会过滤结果。
标签: jquery json autocomplete