Obtendo o autocomplete do jQuery para trabalhar com o PHP
Eu tenho um campo de preenchimento automático de jQuery com este código:
<code> var tags = ["a", "ab", "abc", "abcd", "adbce", "abcdef", "abcdefg", "abcdefgh", "abcdefghi", "abcdefghij", "abcdefghijk", "abcdefghijkl", "abcdefghijklm", "abcdefghijklmn", "abcdefghijklmno", "abcdefghijklmnop", "abcdefghijklmnopq", "abcdefghijklmnopqr", "abcdefghijklmnopqrs", "abcdefghijklmnopqrst", ]; $("input#name").autocomplete({ position: { offset: "0 -10px", }, source: tags }); </code>
Funcionou corretamente usando o array 'tags' como dados de entrada de amostra.
Agora preciso ter um conjunto de resultados de consulta do MySQL em vez desse array de amostra. O que fiz foi alterar a chamada de função para isso:
<code>$("input#name").autocomplete({ position: { offset: "0 -10px", }, source: "http://absolutepathtofile/autosuggest.php" }); </code>
Usei um caminho absoluto para ter certeza de que não estava cometendo algum erro bobo, porque não consigo obter o retorno do arquivo para o preenchimento automático. Eu estive na documentação do jQuery e encontrei alguns exemplos de uso do PHP / MySQL para retornar resultados para o autocomplete, mas não consigo fazê-lo funcionar.
Isso é o que eu tentei em autosuggest.php:
<code>$term = $_REQUEST['term']; $query = "SELECT * FROM merchants WHERE business_name LIKE '%$term%'"; $result = mysql_query($query); $k=0; while($row=mysql_fetch_array($result)){ $aUsers[$k]=$row['business_name']; $k++; } echo json_encode($aUsers); </code>
Eu fiz o mais simples possível, mas não funcionou.
Então testei para ver se o JSON estava sendo enviado, então fiz isso:
<code>$array[0]="test"; $array[1]="test1"; echo json_encode($array); </code>
E isso não funciona. Não consigo encontrar este problema em nenhum lugar, o que estou fazendo errado? A versão do PHP é 5.3.10 e tem o json_encode (usado antes).