@Lil0

Проблема с кодом php при создании живого поиска. Подключение к бд?

Создали БД на хостинге в phpmyadmin, там же добавили пользователя для подключения к бд. В базе есть простая табличка с столбцами name, surname, term .
Для реализации поиска использую jq плагин autocomplete.
Поиск не осуществляется. Думаю php код не работает и возможно проблема в самом простом - подключение к БД или с таблицей. С знанием php плохо. Использую пример из статьи https://webformyself.com/zhivoj-poisk-dlya-sajta-c... .
Локально на jq при создании массива в коде плагин отлично работал. С серверной частью совсем беда

<? 
$db = mysqli_connect("ИМЯ СЕРВЕРА","ИМЯ БАЗЫ" ,'ПОЛЬЗОВАТЕЛЬ БД','ПАРОЛЬ БД') or die("Нет соединения с БД");
mysqli_set_charset($db, "utf8") or die("Не установлена кодировка соединения");

function search_autocomplete(){
 global $db;
 $search = trim(mysqli_real_escape_string($db, $_GET['term']));
 $query = "SELECT Name FROM НАЗВАНИЕ_БД WHERE Name LIKE '%{$search}%' LIMIT 10";
 $res = mysqli_query($db, $query);
 $result_search = array();
 while($row = mysqli_fetch_assoc($res)){
  $result_search[] = array('label' => $row['Name']);
 }
 return $result_search;
}

if(!empty($_GET['term'])){
 $search = search_autocomplete();
 exit( json_encode($search) );
}


$(function(){

	$("#search").autocomplete({
		source: 'search.php',
		minLength: 2,
		select: function( event, ui ){
			window.location = 'search.php?search=' + encodeURIComponent(ui.item.value);
		}
	});

});
  • Вопрос задан
  • 87 просмотров
Пригласить эксперта
Ответы на вопрос 2
@alekssamos
Программист любитель
Все проблемы решаются нажатием F12 в браузере и просмотром консоли / вкладки сеть, на крайней случай, выводить через alert ответ сервера. Будет ошибка в PHP - сразу увидите.
Ответ написан
@rotarepmipoleved
В данном случае source объявлен неверно.
Для связи с PHP используйте AJAX:
source: 'search.php',
меняем на:
source: function(request, response) {
            $.ajax({
                url: "search.php",
                method: "GET",
                dataType: "json",
                data: { 
                    term: request.term,
                },
                success: function(data){
                    response(data); 
                },
            });
        },
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы