2015-06-04 74 views
0

我有一個奇怪的問題,我從來沒有面對過它。自動完成功能每次都不起作用

我有一個自動完成約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:即使你$array是OK

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

回答

0

所以,你echo json_encode($array);有時沒有值?您是否使用utf-8以外的字符編碼?如果使用不同的編碼,則必須先轉換爲utf-8,否則json_encode將失敗。

+0

是的,我使用'utf-8'編碼,但是謝謝。我找到了soluce,這是因爲我的db中的'insert'是錯誤的。我插入了字符串值,例如'「switch1」'而不是'「switch1」'。空間造成了自動完成的錯誤^^' –

相關問題