Typeahead - JS e PHP

26/07/2017

0

Estou com problemas para incluir no meu site um processo de auto sugestão, por mais que as partes pareçam estar funcionando , o todo não responde como desejado.
<script type="text/javascript">
        $(document).ready(function(){
            var cities = [<?php foreach ($result as $item) { echo json_encode($item['name'] ) . ","; }?> ]

            var cities = new Bloodhound({
                datumTokenizer: Bloodhound.tokenizers.whitespace,
                queryTokenizer: Bloodhound.tokenizers.whitespace,
                local: cities
            });

            $('.typeahead').typeahead({
                    hint: true,
                    highlight: true, 
                    minLength: 2 
                },
                {
                    name: 'cities',
                    source: cities
                });
        });
    </script>


Das várias tentativas que fiz, a que apresentei acima foi a melhor, mas estou com problemas para implementar o ID da lista, vejam que só coloquei o nome do produto, como faço para implementar uma lista que tenha o ID ?

Ainda poderia compartilhar um exemplo de sugestão (auto complete) que armazene de alguma forma o ID do item escolhido baseado no texto digitado por favor;
Mauricio Cunha

Mauricio Cunha

Responder

Post mais votado

07/08/2017

Mauricio,

Cara você poderia em vez de imprimir um JSON com o PHP efetuar uma chamada em um arquivo para lhe responder isso, mas caso seu contexto não consiga vamos la.

Em vez disso:
 var cities = [<?php foreach ($result as $item) { echo json_encode($item['name'] ) . ","; }?> ]


Tente isso:
 var cities = [<?php  echo json_encode($result ); ?> ]


Pois ali neste array do $result vai conter toda a sua estrutura e você utiliza o each do jQuery para navegar no array JSON que vai ser criado.

Abraços.

Fabio Rocha

Fabio Rocha
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar