0

我正在使用 jQuery 自动完成与连接到 MySQL 的 PHP 源文件并获取信息以在输入字段上显示为自动完成。这是我的代码:

索引/输入

<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);

问题是,它返回好的值和其他空值。但是,在最后一种情况下,值不应为空,因为它们在数据库中。

例如,在数据库中,我有以下条目:ISCTE - Instituto Universitário INDEG-ISCTE Business School

通过“iscte”搜索,自动完成会给出第二个,但第一个显示为空。

谢谢你的时间,问候,雨果

4

1 回答 1

1

那是因为编码。用这个:

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

您的数据库应该设置为 UTF8,但顺便说一下,这可以修复它。

于 2013-10-08T17:26:43.410 回答