繁体   English   中英

自动完成 PHP、MySQL 和 jQuery(ajax)不起作用

[英]Autocomplete with PHP, MySQL & jQuery (ajax) not working

我正在尝试在我的 PHP 网站上创建搜索自动完成 function。 我有一个名为 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 或.network 错误。 我在 HTML 文档的底部确实得到了一个字符串。 没有搜索结果。

我从文档中的示例开始在我的机器上进行了测试。

如果您在输入中输入“word”而不按提交按钮,您会看到它在名为 term 的变量内发送到服务器:请求 URL 将是http://localhost/search.php?term=word (我真的不知道为什么到目前为止,也许是一些 JQuery 内部)。 如果将搜索变量更改为$search = $_GET['term'] ,自动完成功能将起作用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM