2015-06-04 5 views
0

У меня странная проблема, и я никогда не сталкивался с ней раньше.Autocomplete не работает каждый раз

У меня есть автозаполнение около switchName, но иногда это работает, а иногда и нет ... Я объясню.

Когда я пытаюсь выполнить автозаполнение с 1 строкой в ​​моей БД, автозаполнение работает, но когда я помещаю весь мой переключатель (300 строк), никаких значений не появляется.

Я не думаю, что есть ошибка, потому что запрос SQL работает, но иногда у моего JSON нет значений, поэтому у моего автозаполнения нет значений.

Вы можете мне помочь?

Мой PHP:

if (isset($_GET['term'])){ 
    $connection = new Connection; 
    $connection->connection(); 
    $conn = $connection->getConnection(); 

    $requete = $conn->prepare('SELECT switchName FROM switch 
    WHERE switchName LIKE :term'); 
    $requete->execute(array('term' => $_GET['term'].'%')); 

    $array = array(); 

    while($donnee = $requete->fetch()) 
    { 
     $array[] = $donnee['switchName']; 
    } 

    echo json_encode($array); 
} 

и мои JS:

$(function(){ 
    $(".switchName").autocomplete({ 
     source: 'switchName.php', 
     minLength: 1 
    }); 
}); 

и мой HTML:

<tr> 
     <td>Switch*</td> 
     <td><input type="text" class='switchName' name="switchName"/></td> 
    </tr> 

ответ

0

Итак, ваш echo json_encode($array); иногда не имеет значения, даже если ваш $array ОК ? Используете ли вы кодировку символов, отличную от utf-8? Если вы используете другую кодировку, сначала необходимо преобразовать ее в utf-8, иначе json_encode не удастся.

+0

Да, я использую кодировку 'utf-8', но спасибо. Я нашел совпадение, потому что моя «вставка» в мой db была неправильной. Я вставил строковые значения, такие как «switch1» вместо «switch1». Пространство сделало ошибку автозаполнения ^^ ' –

Смежные вопросы