Ir para conteúdo

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Cesar Melo

Autocomplete jQuery +JSON

Recommended Posts

Olá. Gostaria de uma ajuda para resolver meu problema com autocomplete. Vou explicar o que eu preciso:

Eu estou usando a função "autocomplete()" do jquery-ui para listar um cadastro de clientes onde o source é um arquivo .php. O arquivo php faz a consulta em um banco de dados mysql. Está funcionando normal, porem preciso fazer uma melhora.

Eu gostaria que depois que listasse as sugestões do autocomplete, quando eu "selecionasse / clicasse" em uma das opções, carregasse outros valores para alguma DIV, SPAN, algo do gênero.

Por exemplo: Quando clicasse no nome do cliente "Maria de Souza", carregasse o valor de endereço desse cliente em alguma DIV.

 

Eu não entendo nada de JSON, só conheci esses dias porque precisei usar esse "autocomplete". Antes dele estava usando o ajax do jQuery pra retornar minhas requisições. O que entendi do JSON, é que pode-se criar um array com as saidas que você precisa retornar em uma pagina.

 

Um exemplo resumido de como está meu código:

//Pagina de exibição do autocomplete
<script>
   $('#clienteLista').autocomplete({
      source: "clientelista.php",
      minLength: 2
   });
</script>
//Arquivo "clientelista.php" que faz a consulta e retorna os resultados
$i=0;
$results= array();
while ($sqlresult= mysql_fetch_assoc($sqlquery)) {
   $results[$i] = array('id' => 'Cod: '.$sqlresult[cod], 
                        'label' => $sqlresult[cod],
                        '????' => $sqlresult[endereco]);
   $i++;
}
echo mysql_error();

echo json_encode($results);

Só pra frisar... onde está o '????' => $sqlresult[endereco] é o que eu gostaria que aparecesse em uma DIV separada quando eu selecionasse algum cliente da minha lista. O nome do cliente precisa permanecer no campo "autocomplete".

 

Alguma sugestão para resolver meu problema??

Obrigado...

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Onde você imprime o endereço, no php mesmo vc adiciona um onclick ou um link para chamar o conteúdo em ajax para que possa mostrar ele: exemplo:

$results[$i] = array('id' => 'Cod: '.$sqlresult[cod], 
'label' => $sqlresult[cod],
'????' => '<a href="javascript:;" class="clicar-cod" data-id="'.$sqlresult[cod].'">'.$sqlresult[endereco]).'</a>';

Depois isso você faz um código em javascript mesmo pegando o id atraves dessa classe. Exemplo:

$(".clicar-cod").on("click", function(){
   alert($(this).attr("data-id"));
});

Deixei um alert para você testar e ver se está chegando tudo certinho.

 

Creio a partir dai você consiga fazer uma ajax resgatando o que você quer e jogando em uma div.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.