24/01/2016

autocompetar json pesquisar em dois campos do mysql

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:

<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


<?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));
?>

Respostas

24/01/2016

William (devwilliam)

Responder Citar

25/01/2016

Marcio Araujo

Ultimamente essa funcionalidade está sendo bastante solicitada.
Responder Citar

23/04/2016

Felipe Martins

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>
Responder Citar