2013-06-13 4 views
0

MySQL에 연결하는 PHP 소스 파일에 jQuery 자동 완성을 사용하고 입력 필드에 자동 완성으로 표시 할 정보를 얻습니다. 여기에 내 코드입니다 :jQuery 자동 완성이 일부 null 값을 반환합니다.

색인/입력

<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 - 'iscte'자동 완성이 두 번째를 제공하지만, 첫 번째는 null를 표시하여 검색 연구소의 Universitário INDEG - ISCTE 비즈니스 스쿨

합니다.

, 당신 시간 감사합니다, 인코딩 때문이다 우고

+0

PHP 파일에 매개 변수를 제공하는 곳이 보이지 않습니다. – jcho360

+0

제쳐두고 : SQL 쿼리를 올바르게 탈출했는지 확인하십시오. 그렇지 않으면 SQL 인젝션 공격에 취약 해집니다. – Gevious

+0

지저분한, 고마워. jQuery에 초점을 맞춰 자동 완성을 테스트하고 있습니다. 사실, 웹 사이트에서 우리는 우리의 쿼리를 피합니다. –

답변

1

을 주셔서 감사합니다. 이것을 사용하십시오 :

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

데이터베이스가 UTF8로 설정되어야하지만,이 방법으로 수정하십시오.

관련 문제