我正在将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);
问题是,它返回好的值和其他空值。但是,在最后一种情况下,这些值不应为null,因为它们位于数据库中。
例如,在数据库中,我有以下条目:
ISCTE-大学研究所
INDEG-ISCTE商学院
按“ iscte”搜索自动完成功能会得到第二个,但第一个显示为空。
谢谢您的时间,
问候,
雨果
最佳答案
那是因为编码。用这个:
...
while($row = mysql_fetch_array($query)){
$results[] = array('label' => utf8_encode($row['name']));
}
...
您的数据库应设置为UTF8,但是,此方法已对其进行了修复。