0

MySQLに接続し、入力フィールドにオートコンプリートとして表示する情報を取得するPHPソースファイルでjQueryオートコンプリートを使用しています。これが私のコードです:

インデックス/入力

<script>

 $(function() {
     $("#search").autocomplete({
    source: 'http://localhost/testes/autocomplete.php',
    minLength: 3
 });
});

</script>

<input type="text" id="search"/>

オートコンプリート PHP

$req = "SELECT DISTINCT name FROM faculty WHERE name LIKE '%".$_REQUEST['term']."%'"; 
$query = mysql_query($req);

while($row = mysql_fetch_array($query)){
    $results[] = array('label' => $row['name']);
}

echo json_encode($results);

問題は、適切な値とその他の null 値が返されることです。ただし、最後のケースでは、値はデータベースにあるため、値を null にすることはできません。

たとえば、データベースには次のエントリがあります。ISCTE - Instituto Universitário INDEG-ISCTE Business School

「iscte」で検索すると、オートコンプリートは 2 番目のものを提供しますが、最初のものは null として表示されます。

時間をありがとう、よろしく、ヒューゴ

4

1 に答える 1

1

それはエンコーディングが原因です。これを使って:

...
while($row = mysql_fetch_array($query)){
    $results[] = array('label' => utf8_encode($row['name']));
}
...

データベースは UTF8 に設定する必要がありますが、これで修正されます。

于 2013-10-08T17:26:43.410 に答える