php - jquery 自动完成和 mySql 的问题

标签 php jquery mysql jquery-ui autocomplete

search.php

$text = $mysqli->$_POST['term'];
$query = "SELECT name FROM males WHERE name LIKE '%" . $text . "%' ORDER BY name ASC";
$result = $mysqli->query($query);
$json = '[';
$first = true;
while($row = $result->fetch_assoc())
{
    if (!$first) { $json .=  ','; } else { $first = false; }
    $json .= '{"value":"'.$row['name'].'"}';
}
$json .= ']';
echo $json;

index.php

1) HTML

<body>
Text: <input type="text" id="autocomplete" />
</body>

2) jQuery

    $( "#autocomplete" ).autocomplete({
        source: function(request, response) {
            $.ajax({ url: "http://localhost/testing/auto/search.php",
            data: { term: $("#autocomplete").val()},
            dataType: "json",
            type: "POST",
            success: function(data){
                response(data);
            }
        });
    },
    minLength: 2
    });

当我键入 2 个字母时,即使这两个字母与任何名称都不匹配,它也会为我提供数据库中的所有名称。

这是怎么发生的,我该如何解决?

最佳答案

看起来我的评论起到了答案的作用,因此有了这个答案。

$mysqli->$_POST['term'] 是做什么的?我认为你应该有 $text = $_POST['term'];。这应该有效。

关于php - jquery 自动完成和 mySql 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6302970/

相关文章:

php - 将 URL 解码为数组而不是字符串

php - 当输入字段有撇号时Mysql插入不起作用

php - 使用 2 个 WHERE 条件计算一个表中的值

PHP 错误让我抓狂

jQuery 旋钮 0.5 步?

javascript - 无法在加载事件上提交按钮

javascript - 需要切换选定的 div,并增加计数器

php - foreach 内部的查询如何

使用 JDBC 的 Java MySQL 查询

PHP-解析错误 : syntax error, 意外 'readphp' (T_STRING),期望 ',' 或 ';'