2017-01-04 2 views
0

Хорошо, я использую подготовленное заявление, чтобы получить все города.Autocomplete не работает с mysql

это мой PHP-файл

<?php 
include_once '../includes/db_connect.php'; 
$search = $_GET['term']; 
if($stmtgetstore = $mysqli->prepare("SELECT * FROM cities WHERE city LIKE '%$search%'")) 
{ 
    //$stmtgetstore->bind_param("s",$search); 
    $stmtgetstore->execute(); 
    $getstore = $stmtgetstore->get_result(); 
    $stmtgetstore->close(); 
} 
else 
{ 
    echo $mysqli->error; 
} 
$array = array(); 

$json = '['; 
$first = true; 
while($store = $getstore->fetch_assoc()) 
{ 
    if (!$first) { $json .= ','; } else { $first = false; } 
    $json .= '{"value":"'.$store['city'].'"}'; 
} 
$json .= ']'; 

?> 

И это мой сценарий и HTML

<script type="text/javascript"> 
$(document).ready(function() 
{ 
    $('#autoCity').autocomplete(
    { 
     source: "scripts/search_store_by_city.php", 
     minLength: 2 
    })/*.data("autocomplete")._renderItem = function(ul, item) 
    { 
     return $("<li></li>") 
     .data("item.autocomplete", item) 
     .append(item.city) 
     .appendTo(ul); 
    };*/ 
}); 
</script> 




    <div class="container"> 

    <form action="" method="GET"> 
     <input type="text" id="autoCity"> 
    </form> 

    </div> 

Но как-то, когда я вводить буквы в текстовом поле я не вижу результата приходит в консоли и без ошибок тоже, но при запуске запроса в базе данных он дает мне на строки

Этот запрос

SELECT * FROM cities WHERE city LIKE '%Kara%'

Любая идея, что я делаю неправильно?

+0

Вы смотрели AJAX запрос/ответ в инструментах разработчика браузера? Включили ли вы библиотеку jQuery в проект? Есть ли ошибки в консоли? Вы используете это на веб-сервере? Проверяли ли вы свои журналы ошибок на стороне сервера? –

+0

Yess Я проверил запрос ajax и ответ. Я видел, что ничего не возвращается. Я использовал jQuery-библиотеки, а также нет ошибок, возвращающихся назад, ни какие-либо данные. – Alexxxx

+0

Некоторая разумная отступка кода была бы хорошей идеей. Это помогает нам читать код и, что более важно, это поможет ** вы отлаживаете свой код ** [Взгляните на стандарт кодирования] (http://www.php-fig.org/psr/psr-2/) для вашей собственной выгоды. Вас могут попросить изменить этот код через несколько недель/месяцев, и в конце вы поблагодарите меня. – RiggsFolly

ответ

0

Хорошо, я забыл повторить мой JSON в конце сценария

<?php 
include_once '../includes/db_connect.php'; 
$search = $_GET['term']; 
if($stmtgetstore = $mysqli->prepare("SELECT * FROM cities WHERE city LIKE '%$search%'")) 
{ 
//$stmtgetstore->bind_param("s",$search); 
$stmtgetstore->execute(); 
$getstore = $stmtgetstore->get_result(); 
$stmtgetstore->close(); 
} 
else 
{ 
echo $mysqli->error; 
} 
$array = array(); 

$json = '['; 
$first = true; 
while($store = $getstore->fetch_assoc()) 
{ 
if (!$first) { $json .= ','; } else { $first = false; } 
$json .= '{"value":"'.$store['city'].'"}'; 
} 
$json .= ']'; 
echo $json; 

?>

+1

Не создавайте JSON вручную. Поместите свои данные в массив и используйте 'json_encode()'. – Barmar

+0

Errrm ... 'json_encode()' – Kitson88

+1

Yess Я получил его друзей! Я реализовал его с помощью json_encode() – Alexxxx