Array
(
)

autocompetar json pesquisar em dois campos do mysql

Felipe Martins
   - 24 jan 2016

gente!
fiz um sistema de orçamento onde o usuário começa digitar a descrição do produto e ele puxa automático o nome completo do produto, porém preciso implementar de forma que se ele digitar o código ( ID ) ou uma tag por exemplo, puxa também o nome do produto.
ou seja: pesquisa no campo ID, no campo descrição e no campo tag da tabela tb_item e joga para a pagina somente o campo descrição.
OBS: quero que apareça somente o nome do item no autocomplete
acho que teho que tratar no javascript, pois estou puxando todos os dados do banco com o SELECT * FROM tb_item
eis o javascript que usei:
#Código

<script type="text/javascript">
    $(document).ready(function() {
         
        // Captura o retorno do retornaCliente.php
        $.getJSON('retorna_json_tb_item.php', function(data){
            var item = [];
            
            // Armazena na array capturando somente a descrição do item
            $(data).each(function(key, value) {
                item.push(value.descricao);
            });

            $('#txtCliente').autocomplete({ source:item});
        });
    });
</script>

e aqui o retorna_json_tb_item.php

#Código
<?php

    $pdo = new PDO("mysql:host=localhost; dbname=banco; charset=utf8;", "user", "pass");
    $dados = $pdo->prepare("SELECT * FROM tb_item ORDER BY descricao ASC");
    $dados->execute();    
    
    echo json_encode($dados->fetchAll(PDO::FETCH_ASSOC));
?>

William (devwilliam)
   - 24 jan 2016

Veja se esse post ajuda http://www.devwilliam.com.br/php/autocomplete-com-jquery-ui-php-mysql.

Marcio Araujo
   - 25 jan 2016

Ultimamente essa funcionalidade está sendo bastante solicitada.

Felipe Martins
   - 23 abr 2016

gente consegui pesquisar nos dois campos porém ele mostra os dois campos pois quando pesquisa ja joga pra dentro da variavel item a descricao e o codigo

<script type="text/javascript">
$(document).ready(function() {

// Captura o retorno do retornaCliente.php
$.getJSON('retorna_json_tb_item.php', function(data){
var item = [];

// Armazena na array capturando somente a descrição do item
$(data).each(function(key, value) {
item.push(value.id + " - " + value.descricao);
});

$('#txtCliente').autocomplete({ source:item});
});
});
</script>