Pesquisar na Comunidade
Mostrando resultados para as tags ''resolvido!''.
Encontrado 1 registro
-
Ontem estava fazendo um blade.php no Laravel para procurar um produto através do <datalist>. Eu não sei se o Laravel tem algo que substitua o <datalist>, mas eu resolvi usar o JavaScript, onde eu aprendi que o <option> tem um propriedade chamada data-id. Eu criei um array para a consulta, e usei a chave do array para definir o data-id do <option>, e pedi para o JavaScript exibir os dez próximos itens a partir do item selecionado através do comando for(contador=selecionado;contador<selecionado+9,selecionado++), mas ele acabou listando todos os produtos a partir do item selecionado. Pensei que o problema era o ambiente Laravel, assim traduzi o blade.php em php, mas o problema continuou o mesmo. Para contornar, usei o comando forEach no lugar do for, e o código ficou assim: <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbprod order by prod"); $prod=$query->fetch_all(MYSQLI_ASSOC);?> <script> function procurar(valor){ for(i=0;i<produtos.options.length;i++){ if(produtos.options[i].value==valor){ j=produtos.options[i].getAttribute('data-id');}} show(j);} function show(j){ divshow.innerHTML=""; teste=[1,2,3,4,5,6,7,8,9,10] teste.forEach(function(){ divshow.innerHTML+=produtos.options[j].value+"<br>";j++})} </script> <div><p><p> <form> <input list=produtos autofocus id=produto onchange=procurar(value) autofocus> <datalist id=produtos> <?php foreach($prod as $key=>$pr){echo "<option data-id=$key value='".$pr['prod']."'>";} ?> </datalist></form></div> <div id=divshow></div> <script>show(0)</script>