Ir para conteúdo

Arquivado

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

Hugo Borges_120734

jQuery Autocomplete

Recommended Posts

Galera tenho um sistema que uso para consulta no BD mysql, ele usa jQuery Autocomplete para preencher um campo input.

 

O problema e que ele preenche o input com o echo "$cname\n"; do php. gostaria de colocar o nome do produto, mas ao clica ele teria que preencher o input com o código do produto.

 

Tem alguma forma de fazer isso?

 

Segue meu código em php:

$text = $mysqli->real_escape_string(filter_input(INPUT_GET, 'q',FILTER_DEFAULT));
 
$query = "SELECT `nome` FROM produtos WHERE nome LIKE '%$text%' and status = 's' ORDER BY nome ASC";
$result = $mysqli->query($query);

while($row = $result->fetch_assoc()){
    $cname = $row['nome'];
    echo "$cname\n";
}
E como o javascript e grande coloquei neste link:

 

https://jsfiddle.net/hugoborges/soacn2nv/

 

Bom des de ja agradeço a ajuda.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Se você quiser fazer um recurso de autocomplete igual o google suggest, você vai te que fazer uma API (no caso em PHP) e integrar o HTML com ajax.

 

HTML + JS:

<script>
var executeAjaxQuery = function(string){
  if (string.length == 0){
    $("#autoComplete").html("");
    $("#autoComplete").css("border","0px");
    return;
  }
  var ajaxSuccessCallback = function(data){
    $("#autoComplete").html(data);
    $("#autoComplete").css("border","1px solid #000")
  }
  $.get('api.php',{string:string},ajaxSuccessCallback);
}
</script>
<input onkeyup="executeAjaxQuery(this.value)" type="text"/>

<!-- autocomplete vai aparecer nesta div -->
<div id="autoComplete"></div>

API em PHP que vai receber as requisições GET

$qsParam = $_GET["string"];
$query = "SELECT nome FROM produtos WHERE nome LIKE '%".$qsParam."%' AND status = 's' ORDER BY nome ASC";
$result = $mysqli->query($query);
while($row = $result->fetch_assoc()){
  echo $row['nome'].'<br/>';
}

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.