PHP,MySQL和jQuery(ajax)的自动完成功能不起作用

问题描述 投票:0回答:1

我正在尝试在我的PHP网站上创建搜索自动完成功能。我有一个名为SQL的表:存储新帖子的帖子。我有一个输入搜索字段,我想通过搜索其帖子标题来列出帖子,并使其异步显示。在输入字段中搜索内容时,收到200响应。我确实相信问题出在从数据库中获取帖子后显示帖子。

该服务器现在在我的XAMP上运行,并且我也测试过将其推送到“活动”服务器上。我对jQuery,PHP和SQL还是很陌生,所以可能是菜鸟的错误……我还没有粘贴搜索输入和jQuery文件中的所有代码,“只是必要的部分”。

这里是输入搜索字段:

<form method="GET" class='navbar__search navbar__col'>
    <input type='search' name='navbar__searchField' id="navbar__searchField" placeholder='Search'>
    <button type="submit">Submit</button>
</form>

这是jQuery逻辑:

$("#navbar__searchField").autocomplete({
    source: "../../php/includes/search.php",
    minLength: 1
});

最后是search.php代码:

<?php 

// The connection to the DB is done via this require.
require '../core/init.php';

$search = $_GET['navbar__searchField'];
$sql    = $conn->query("SELECT * FROM posts WHERE title LIKE '%$search%'");

if ($sql->num_rows > 0) {
    while($row = $sql->fetch_assoc()) {
        $data[] = $row['title'];
    }
}

echo json_encode($data); 

$conn->close();
?>

目前,我没有任何PHP或网络错误。我确实在HTML文档的底部得到了一个字符串。没有搜索结果。

php jquery sql ajax
1个回答
0
投票
如果您在输入中输入'word'而没有按下提交按钮,您会看到这是在名为term的变量内发送到服务器的:请求URL为http://localhost/search.php?term=word(我真的不知道为什么会这样到目前为止,也许是一些内部的JQuery)。如果将搜索变量更改为$search = $_GET['term'],则自动完成功能将起作用。
© www.soinside.com 2019 - 2024. All rights reserved.