Arquivo

Textos com Etiquetas ‘retorno’

Problema Json e Acentuação – Retornando null

21, novembro, 2013 Lucas Catani 7 comentários

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”.