Fernando Fefu
Fernando Fefu

Reputation: 157

jquery autocomplete is not working good with accentuation

i've some trouble with accentuation in autocomplete from jquery. when i type a letter with accent i have the result like "M& Aacute;THEUS" instead "MÁTHEUS" i tried to change utf8_encode to decode then i have "M?THEUS"

follow my code bellow

retornar_cliente_processo.php

<?php require_once("conexao/conexao.php"); ?>
<?php
$term = trim(strip_tags($_GET['term']));//retrieve the search term that autocomplete sends

$qstring = "SELECT clienteNome as value,clienteId as id FROM cliente WHERE clienteNome LIKE '%".$term."%' LIMIT 10";

 $consulta_tr = mysqli_query($conecta, $qstring);
    if(!$consulta_tr) {
        die("erro no banco1");
    }

while ($row = mysqli_fetch_array($consulta_tr,MYSQL_ASSOC))//loop through the retrieved values
{
        $row['value']=htmlentities(stripslashes(utf8_encode($row['value'])));
        $row['id']=(int)$row['id'];
        $row_set[] = $row;//build an array
}
echo json_encode($row_set);//format the array into json data
?>

js

$(document).ready(function() {
    $('#clientes').autocomplete({
    source: 'php/retornar_cliente_processo.php',
    minLength: 1,   

      select: function(event, ui) {

        $('#clienteId').val(ui.item.id);
        $('.form-control').removeAttr("disabled");  
        $('#clientes').attr("disabled", "disabled");
        $('#alteraNome').removeAttr("disabled");        
             },
        }); }

html

  <input type="hidden" name="clienteId" id="clienteId" placeholder="ID">   

      <div class="form-group">
          <div class="col-md-12">
              <label for="clienteNome" class="control-label">Nome do cliente</label>

              <div class="input-group">
                  <input type="text" autocomplete="off" name="clienteNome" id="clientes"  class="form-control" placeholder="Nome do cliente" required>

              </div>

        </div>
      </div>

Upvotes: 1

Views: 93

Answers (1)

CJ Nimes
CJ Nimes

Reputation: 658

Here, remove htmlentities(), that's why you get M&Aacute;THEUS instead of MÁTHEUS:

$row['value']=stripslashes(utf8_encode($row['value']));

Upvotes: 1

Related Questions