Автозаполнение с PHP, MySQL & jQuery (ajax) не работает - PullRequest
0 голосов
/ 23 февраля 2020

Я пытаюсь создать функцию автозаполнения поиска на моем PHP сайте. У меня есть таблица SQL под названием: сообщения, где хранятся новые сообщения. У меня есть поле поиска ввода, в котором я хотел бы перечислить сообщения, выполнив поиск по их названию, и чтобы они отображались асинхронно. Я получаю ответ 200 при поиске чего-то в поле ввода. Я верю, что проблема заключается в отображении постов после их извлечения из базы данных.

Сервер теперь работает на моем XAMP, и я также проверил его на "живой" сервер. Я совершенно новичок в jQuery, PHP & SQL, так что это может быть ошибкой ладьи ie ... Я не вставил весь код из входных данных поиска и 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 logi c:

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

И, наконец, поиск. 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 с надписью. Нет результатов поиска.

1 Ответ

1 голос
/ 23 февраля 2020

Я провел тест на своем компьютере, начиная с примера в документации .

Если вы введете слово в слово без нажатия кнопки отправки, вы увидите что это отправляется на сервер внутри переменной с именем term: URL запроса будет http://localhost/search.php?term=word (я действительно не знаю, почему до сих пор, возможно, какой-то JQuery внутренний). Если вы измените переменную поиска на $search = $_GET['term'], автозаполнение будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...