Выборка данных из MYSQL с использованием автозаполнения, результат не найден

#php #jquery #mysql

#php #jquery #mysql

Вопрос:

Я хочу поиск, подобный поиску в Google. Когда вы начнете вводить, в выпадающем списке будут перечислены предложения, поэтому я использовал автозаполнение. Моя проблема в том, что когда я набираю любой ключ, выводится сообщение «Результат не найден», хотя данные, которые я набираю, находятся в моей базе данных. Я проверяю свое подключение к базе данных и его правильность. Может кто-нибудь объяснить мне, что я делаю не так?

HTML

    <input type="text" name="clientname" id="clientname" />
  

php
Эта часть отредактирована, я попробовал предложение @asik, но все еще не работает

filename:getautocomplete.php

    if (isset($_REQUEST['term'])){
$return_arr = array();

    $stmt = $con->prepare('SELECT * FROM client WHERE CLIENTNAME LIKE :term');
    $stmt->execute(array('term' => '%'.$_GET['term'].'%'));
    while($row = mysqli_fetch_assoc($stmt)) {
        $return_arr[] =  $row['CLIENTNAME'];            
    }
    echo json_encode($return_arr);
        }
        else
        {
     echo 'ERROR: ' . $e->getMessage();
    }
  

JavaScript

     $(function() {
      $("#clientname" ).autocomplete({
      source: "getautocomplete.php"
   });
  });
  

заранее спасибо

Комментарии:

1. Я думаю, вы используете автозаполнение jquery. По умолчанию значение отображается в качестве параметра «term». таким образом, вы можете изменить $_REQUEST[‘имяклиента’] на $_REQUEST[‘term’]

2. Я меняю все имя клиента на term, а затем mysql_ * на mysqli. Но все еще не работает. Должен ли я поставить что-то перед оператором if? Спасибо

3. проверьте, что он отправляет getautocomplete.php , используя Firebug или Chrome Deve Tool

Ответ №1:

попробуйте это, вам не хватает : именованного параметра

 $stmt = $con->prepare('SELECT CLIENTNAME FROM client WHERE CLIENTNAME LIKE :term');
$stmt->execute(array(':term' => '%'.$_REQUEST['term'].'%'));
  

Надеюсь, это сработает, если нет, вы можете попробовать форматировать ответ как label amp; value

 $return_arr[] =  array('label' => $row['CLIENTNAME'], value => $row['CLIENTNAME']);  
  

все еще не работает скриншот getautocomplete.php ответа с использованием Firebug