Boa tarde pessoal. Essa semana tive um problema com o jquery autocomplete, que retornava NULL para as strings acentuadas. Fiz diversas buscas no google, por fim a solução foi muito simples.
Solução:
Exemplo da chamada do autocomplete:
$("#txNomePessoa").autocomplete({ source: "autocompletarNomePessoa.php", minLength: 1, select: function( event, ui ) { $("#txtIdPessoa").val(ui.item.codigo); } });
No arquivo autocompletarNomePessoa.php devemos adicionar a seguinte linha, antes da consulta sql
mysql_query('SET CHARACTER SET utf8');
O arquivo fica assim:
< ?php $return_arr = array(); $dbhost = 'enderecodoservidor'; $dbuser = 'usuariodobanco'; $dbpass = 'senhadobanco'; $dbname = 'nomedobanco'; $conn = mysql_connect($dbhost, $dbuser, $dbpass) or die ('Error connecting to mysql'); mysql_select_db($dbname); /* If connection to database, run sql statement. */ if ($conn) { mysql_query('SET CHARACTER SET utf8'); $fetch = mysql_query("SELECT * FROM pessoas WHERE nomepessoa LIKE '%" . $_GET['term'] . "%'"); /* Retrieve and store in array the results of the query.*/ while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) { $row_array['label'] = $row['nomepessoa']; $row_array['value'] = $row['nomepessoa']; $row_array['codigo'] = $row['idpessoa']; array_push($return_arr,$row_array); } } /* Free connection resources. */ mysql_close($conn); /* Toss back results as json encoded array. */ echo json_encode($return_arr); ?>
Espero ajudar muita gente com esse post, pois na internet tem muitas dúvidas sobre isso, e soluções meio “exageradas”.
Obrigado pela dica. Funcionou perfeitamente para mim. De fato, antes dessa, eu havia encontrado in├║meras dicas mirabolantes que faziam muita coisa menos resolver o problema. Valeu!
tu ├®s o cara!!!! me salvou aqui!
Sei que o post ├® antigo, mas como n├úo funcionou comigo por causa da codifica├º├úo que eu fazia ao inserir no BD, encontrei outra forma de fazer.
No meu caso eu n├úo inseri a linha mysql_query(‘SET CHARACTER SET utf8’);
Apenas utilizei a fun├º├úo “htmlentities($array_destino, $conteudo)” para transformar a string antes de inseri-la no array.
[code]
while ($row = mysql_fetch_array($fetch, MYSQL_ASSOC)) {
$row_array[‘label’] = htmlentities($row[‘nomepessoa’]);
$row_array[‘value’] = htmlentities($row[‘nomepessoa’]);
$row_array[‘codigo’] = $row[‘idpessoa’];
array_push($return_arr,$row_array);
}
[/code]
Cara você salvou meu dia de trabalho!!! Agradeço demais!!!!
Bah. Me quebrou um galhão! Valeu!
Cara,
Mto obrigado, me ajudou mto !!!
Vlw.
Amigo, depois de muito pesquisar a tua solução foi a que resolveu o problema.
N├úo precisei da linha: mysql_query(‘SET CHARACTER SET utf8’);
Obrigado.
Bom dia meu caro.
3 anos depois da sua postagem, a sua solução foi a única que me salvou.
Muito obrigado.
Brother, voce salvou meu tcc
Em pleno 2018 e ainda sim somente a sua resposta me salvou
muito obrigado
MAnnoooooo TOOOPPPP me salvou… estava desistindo do código mas sua dica resolveu. Obrigado