Ir para conteúdo

POWERED BY:

Arquivado

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

guilherme_Stark

AutoComplete UI em varios campos

Recommended Posts

Olá galera, não estou conseguindo retornar mais de um valor através do Jquery UI AutoComplete

Tenho alguns inputs no index.php:

<link type="text/css" href="css/jquery-ui-1.8.5.custom.css" rel="Stylesheet" /> 
<input type="text" name = "nome" id = "nome" /> 
<input type="text" name="titular" id = "titular" />

 

 

Um script na mesma pagina que chama o arquivo autocomplete.php

<script src="js/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="js/jquery-ui-1.8.5.custom.min.js" type="text/javascript"></script>

<script> 
$(function(){
$("#nome" ).autocomplete({source:'autocomplete.php',
       select: function( event, ui ){
        $("#titular").val(ui.item.titular);
       }});
</script>

 

O arquivo autocomplete.php:

(Bd é uma classe de conexão ao Banco de dados por PDO)

"term" é o retorno padrão do AutoComplete UI

<?php
$mysqli = new Bd();
$text = $_GET['term'];
$query = "SELECT nome FROM usuarios WHERE nome LIKE '%$text%' ORDER BY nome ASC";
$result = $mysqli->query($query);


$json = '[';
$first = true;
while($row = $result->fetch()){
   if (!$first) { $json .=  ','; } else { $first = false; }
    $json .= '{"nome":"'.$row['nome'].'","titular":"'.$row['titular'].'"}';


}
$json .= ']';


echo $json;

?>

Só que não consigo retornar nenhum valor quando passo mais de um termo no json.

Se puderem ajudar agradeço muito.

 

 

Compartilhar este post


Link para o post
Compartilhar em outros sites
Então, estudei sobre as funções e agora estou conseguindo retornar mais de um valor. Porém no autocomplete não aparece os nomes, mas se selecionar um deles consigo o retorno.


Tenho o mesmo HTML:




<link type="text/css" href="css/jquery-ui-1.8.5.custom.css" rel="Stylesheet" />
<input type="text" name = "nome" id = "nome" />
<input type="text" name="titular" id = "titular" />



O seguinte javaScript:



<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.2/jquery.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script type="text/javascript" src="http://code.jquery.com/ui/1.10.1/jquery-ui.min.js"></script>

$("#nome").autocomplete({


source: "autocomplete.php",
minLength: 1,
select: function(event, ui) {

$('#nome').val(ui.item.nome);
$('#titular').val(ui.item.titular);

}
});



E o autocomplete.php




<?php


include_once 'app.php';


$mysqli = new Bd();
$text = $_GET['term'];
$query = "SELECT * FROM usuarios WHERE nome LIKE '%$text%' ORDER BY nome ASC";
$result = $mysqli->query($query);


while ($row = $result->fetch()) {
$data[] = array(
'nome' => $row['nome'],
'titular' => $row['titular'],


);
}
echo json_encode($data);


O formulário está ficando assim quando busco pelo nome:


2ngda90.jpg

Compartilhar este post


Link para o post
Compartilhar em outros sites

Analise o retorno via firebug

 

Se estiver faltando os [] corrija, pois desta maneira, acredito que esteja retornando somente entre as {}

 

Por isso eu disse use array_push

 

Onde e em qual momento você usou array_push?

Compartilhar este post


Link para o post
Compartilhar em outros sites

O autocomplete não aceita mais de um valor.

Ele não foi feito para isso.

 

Creio que é algo parecido com isso que vc quer:

http://wbruno.com.br/ajax/input-preenche-formulario-ajax/

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.