Вы не должны использовать echo
из метода, только return
. Вы не должны ничего выводить, кроме как из лога вашего контроллера c. Также избегайте использования глобальных переменных внутри метода, вместо этого передавайте значение в качестве параметра. Кроме того, нет необходимости в oop, когда вы можете использовать функцию PDO fetchAll()
.
public function getAllartikelSearch($term)
{
$sql = "SELECT artikelNummer FROM artikel where artikelNummer like :keyword";
$statement = $this->connection->prepare($sql);
$statement->execute(["keyword" => "%$term%"]);
$result = $statement->fetchAll(PDO::FETCH_COLUMN, 0);
return json_encode($result);
}
Теперь поиск. php может выглядеть так, устанавливая правильные заголовки и выводя JSON к сценарию. Не закрывайте код PHP, если после него в том же файле не указано HTML.
<?php
require_once 'database.php';
require_once 'autoloader.php';
$overzichtmanager = new overzichtmanager();
$json = $overzichtmanager->getAllartikelSearch($_GET["term"]);
header("Content-Type: application/json");
echo $json;
Попробуйте, и он должен хорошо работать. Я подозреваю, что отсутствие заголовка вызывало проблемы или, возможно, вывод других данных до или после JSON. Если проблемы продолжаются, проверьте консоль JS в своем браузере на наличие сообщений об ошибках и отредактируйте свой вопрос, чтобы включить их.