php - 自动完成不返回搜索到的值,但它返回所有值(在 PHP、jQuery 中)

标签 php jquery html json autocomplete

我有像这样的index.php:

<link rel="stylesheet" href="https://code.jquery.com/ui/1.11.4/theme/smoothness/jquery-ui.css"/>
<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>

<script>
    $(document).ready(function(){
        $("name").autocomplete({
            minLength: 2,
            source: 'autocomplete.php',
            select: function(event,ui){
                $("#name").val(ui.item.value);
            }
        });
    });
</script>
<form method="GET">
    <input type="text" name="name" id="name"/>
</form>

这是autocomplete.php的一部分

$q = $_GET['name'];
...
$sql = "SELECT name_name FROM tbl_data WHERE name_name LIKE '%$q%'"
...

它返回一个 json 格式的值。

但是,当我在 inputbox 中输入两个字母时,它会显示 tbl_data 中的所有名称,而不仅仅是数据LIKE '%$q'.

如何解决这个问题?

任何回复,谢谢..

最佳答案

首先,您必须更具体地了解您的 jQuery 选择器:

$('#name').autocomplete({...});

但是我认为你做错的部分是 PHP 代码中从 _GET 数组检索该变量的部分,jQuery 发送到服务器的变量名称是 q 不是 name 所以你的代码应该是这样的:

$q = _GET['q'];

关于php - 自动完成不返回搜索到的值,但它返回所有值(在 PHP、jQuery 中),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31769533/

相关文章:

php - 更改 Libchart 中的文本大小

php - 在 Laravel 中强制 tokenmismatchException

php - 将 "//"注释与正则表达式匹配但不在引号内

javascript - 属性上的 JQuery show() 和 hide() 具有值

javascript - 如何设置我要切换的元素在加载时折叠

html - 如何垂直对齐标签中的元素?

php - 使用php从android访问数据库获取 "<HTML>"而不是查询结果

javascript - 使用 FontAwesome 5.0 SVG 框架时在图标之间切换

html - 在移动 View 中显示模糊的引导响应表

javascript - 禁用 jQuery Draggable 的自动高度