autocomplete com array
Olá a todos,
Estou desenvolvendo um aplicativo que vai ter um autocomplete. Esse autocomplete vai pegar os dados que estão em uma array e a partir do que for informado pelo usuário, carrega uma lista com os dados informados. Quando o usuário clicar no item escolhido ele já irá popular os inputs de acordo com a programação feita. Criei uma array multidimensional de testes e um looping foreach. Até aí beleza, eu consigo trazer as informações que eu quero. O problema está em consultar os dados da array, para simular uma consulta no banco de dados. Utilizei o comando array_search que só funciona se o termo informado for igual a um termo encontrado na array.
Para o autocomplete essa situação não resolve uma vez que gostaria que, quando o usuário for digitando o conteúdo, uma lista de informações vá sendo preenchida. Depois tentei com o comando strpos. Esse comando funciona em partes já que ele não trás todo o conteúdo da array que eu preciso para popular os campos de input.
segue o código
//array com os produtos
$produtos =
array(
array('Codigo'=>'010-1',
'Descricao'=>'zzzzzzzzzzzzzzzzzzzzzz',
'Unidade'=>'M2',
'Tamanho'=>'23,5x33,4',
'Marca'=>'1',
'DescricaoMarca'=>'aaaaaaaaaaaaaaaa',
'Data'=>'2006-08-31',
'Valor'=>'6.07'),
array('Codigo'=>'010-2',
'Descricao'=>'kkkkkkkkkkkkkkkkkkkkkkkkk.',
'Unidade'=>'M2',
'Tamanho'=>'23,5x33,4',
'Marca'=>'1',
'DescricaoMarca'=>'bbbbbbbbbbbbbbbbbbbbb',
'Data'=>'2006-08-31',
'Valor'=>'4.50'),
array('Codigo'=>'010-3',
'Descricao'=>'yyyyyyyyyyyyyyyyyyyyyyyyyy',
'Unidade'=>'M2',
'Tamanho'=>'23,5x33,4',
'Marca'=>'1',
'DescricaoMarca'=>'cccccccccccccccccccc',
'Data'=>'2006-08-31',
'Valor'=>'2.90')
);
//var_dump($produtos);
$busca = '0 1';
//looping para trazer os pordutos
foreach($produtos as $produto => $item)
{
echo "<br />\nItem: $produto<br /><br />\n\n";
foreach($item as $dados=>$valor)
{
/se eu informar um valor parcial no comando array_search, a informação não aparece/
if (array_search('REVEST',$item,TRUE))
{
echo "$dados: $valor<br />\n";
}
/*outra situação onde eu consigo trazer itens com informação parcial mais não consigo trazer todos os conteúdos da array. porem se eu inserir o lopping foreach dentro do segundo if
ele até funciona mais duplica os resultados.
*/
if (strpos($valor, $busca) !== FALSE)
{
echo "$dados: $valor<br />\n";
echo count($valor);
}
}
}
Se alguém puder dar uma ajudinha ou alguma dica de como eu posso resolver isso. eu agradeço.
Discussão (2)
Carregando comentários...