Ir para conteúdo

POWERED BY:

Frank K Hosaka

Members
  • Total de itens

    224
  • Registro em

  • Última visita

Tudo que Frank K Hosaka postou

  1. Frank K Hosaka

    Declarar nome da classe em variável?

    <?php class class1 { public static $mensagem="olá mundo";} class class2 { public function teste(){return class1::$mensagem;}} $classe2=new class2; echo $classe2->teste();
  2. Frank K Hosaka

    Listar array de imagens de um response

    A primeira linha do script está assim let getImages = $('#get-images'), só que eu não achei esse elemento dentro do código HTML. Assim eu inventei um elemento assim <div id=get-images>teste</div> Na hora de dar um clique na palavra teste, aí apareceu mais mensagem de erro no painel de inspeção do navegador conforme a imagem que mando anexo. Lamento em não poder ajudar muito, JavaScript eu domino muito pouco.
  3. Frank K Hosaka

    join mysql

    Eu uso o método da tentativa & erro. Ao invés de trabalhar com três tabelas, eu iria trabalhar com apenas um, assim CREATE TABLE `produtos` ( `id` int NOT NULL AUTO_INCREMENT, `nome` varchar(45) COLLATE utf8mb4_general_ci NOT NULL, `custo_unitario` float NOT NULL, `unidade` varchar(2) COLLATE utf8mb4_general_ci DEFAULT NULL, `qt_grade` float DEFAULT NULL, `tamanho_grade` float DEFAULT NULL, `cor_grade` float DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci Vamos começar com o repolho que vai ficar na prateleira: id=1, nome=repolho, custo_unitário=3.49, unidade=un Agora vamos colocar o mesmo repolho que vai ficar na grade id=2, nome=repolho, custo_unitário=3.49,unidade=gd,qt_grade=10,tamanho_grade=0,3cm3,cor_grade=varios Ao invés de termos duas tabelas descrevendo produtos iguais, nos temos uma única tabela que descreve o produto duas vezes, só que um vai no mostruário e o outro para a grade. Pensando bem, é uma péssima ideia ter dois códigos para o mesmo produto, é tão ruim quanto ter duas tabelas que descrevem o mesmo produto. O melhor é fazer um código para cada produto e colocar a grade em todos os produtos, se possível. Na hora de fazer o inventário, eu usaria duas colunas, uma para contar as unidades no mostruário, e outra a quantidade de grade no estoque.
  4. Frank K Hosaka

    melhor bd para grandes volumes

  5. Frank K Hosaka

    pesquisar conteudo de array multidimencional

    Antes de eu procurar o $array(14), eu dou uma olhada no var_dump($array) para ver se ele existe, assim: <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbprod"); $row=$query->fetch_array(MYSQLI_NUM); var_dump($row); echo $row[9];
  6. Frank K Hosaka

    link interno

    <p><a href='?pasta=/wamp64/www/frank'>pasta frank</a> <p><a href='?pasta=/wamp64/www/astudy'>pasta astudy</a> <?php if(isset($_GET['pasta'])){ $dir=$_GET['pasta']; $files = scandir($dir); var_dump($files);} ?> fonte: PHP: scandir - Manual
  7. Frank K Hosaka

    melhor bd para grandes volumes

    Até onde eu sei o que limita o banco de dados é o tamanho do disco de armazenamento. Eu faço lançamentos de despesa, receita, contas a pagar, etc, no MySQL desde 2020. São quase 7.000 registros contábeis, e eles ocupam um espaço de 2.856 kilobytes no meu SSD hoje. De acordo com o Windows, o meu SSD só tem 144.173.821 kilobytes de espaço livre. Eu sou um ótimo digitador, consigo digitar 1 kilobyte por dia. Ou seja, se eu depender do meu notebook, vou precisar até o fim da eternidade para encher o computador com informações que eu considero como importantes.
  8. Frank K Hosaka

    Foreach sistema de provas

    Eu montaria uma pergunta (idpergunta,pergunta,json com várias alternativas,e o gabarito). Eu montaria uma prova (idprova,materia,data,json com várias perguntas (idpergungas)). Eu montaria uma tabela de alunos (idaluno,nome,curso). Eu montaria uma tabela de respostas (idresposta,idprova,idaluno,json com as respostas dos alunos correspondente às questões que compõe a prova) Depois eu pegaria todas as tabelas, pedindo para ordenar por aluno e prova, e montaria um novo array contendo as respostas corretas de cada prova e iria comparar com o array das respostas do aluno correspondente à prova.
  9. Frank K Hosaka

    retornar valor de banco de dados com php com ajax

    Para testar o seu código, alterei um monte de coisas: astudy.php <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.1/jquery.min.js"></script> <script> function BuscaPr(texto){ $.ajax({ method: 'post', url: 'buscapr.php', data: {busca:texto}, dataType: 'json', success: function(retorno){$('#resbuscapro').html(retorno.teste)}, error: function(error){ $('#resbuscapro').html('<p>Não encontramos resultados para sua busca</p>')}})} </script> <input onchange=BuscaPr(value)> <input type=submit value=Nova_Tentativa onclick="location.replace('astudy.php')"> <div id=resbuscapro></div> buscarpr.php <?php if(isset($_POST['busca'])){$mensagem=$_POST['busca'];}else{$mensagem="Erro";} //$mysqli=new mysqli("localhost","root","","astudy"); //$query=$mysqli->query("select * from tbprod"); //$row=$query->fetch_assoc(); //echo json_encode($row); $teste='{"teste":"'.$mensagem.'"}'; echo json_encode(json_decode($teste)); Eu gostei desse trabalho. Eu sempre tive curiosidade em saber como criar um arquivo json pelo PHP. Olhando o seu código, eu vi que bastava apenas usar o comando json_encode. Eu queria usar essa técnica, mas sem usar o banco de dados. Hoje eu consegui!!!! Estou feliz a beça!
  10. Frank K Hosaka

    Calendario PHP

    Obrigado pelos elogios, mas eu também pensei que fosse coisa complicada. Eu pensei que iria precisar do JavaScript, pois existem inúmeros exemplos com ele, mas depois eu lembrei que existe uma ponte entre o servidor PHP e o HTML que é o método GET, e assim o PHP fica sabendo a partir de quando começar o calendário, quando o usuário escolher a primeira ou última data. Ontem eu usei pela primeira vez a função date_add( ) do PHP, isso sim é bem complicado, mas depois que eu aprendi a como usá-lo, eu acabei descobrindo um jeito de contornar o ano bissexto, os meses que tem 30 e 31 dias, tudo isso quem resolve é a função date_add( ). Essa é a diferença entre o meu projeto e dos demais, eu simplesmente não fiz nada, quem faz tudo é o date_add( ) do PHP!
  11. Frank K Hosaka

    Calendario PHP

    <link href="https://cdn.jsdelivr.net/npm/bootstrap@5.2.0/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-gH2yIJqKdNHPEq0n4Mqa/HGKIhSkIHeL5AyhkYV8i59U5AR6csBvApHHNl/vI1Bx" crossorigin="anonymous"> <style>.w600{width:600px} </style> <?php function calendario($comeco,$intervalo){ $date=date_create($comeco); date_add($date,date_interval_create_from_date_string($intervalo)); return date_format($date,'Y-m-d');} date_default_timezone_set('America/Sao_Paulo'); if(!isset($_GET['inicio'])){$inicio=date('Y-m-d');}else{$inicio=$_GET['inicio'];} echo "<div class='w600 m-auto'>"; $semana=["Dom","Seg","Ter","Qua","Qui","Séx","Sab"]; $data=$inicio; $dia=date('d',strtotime($inicio)); $diaSemana=date('w',strtotime($data)); echo "<table><tr>"; $i=$diaSemana; $j=$i%7; $anterior=calendario($inicio,"-7 days"); echo "<td class=bg-warning align=center><small> <a href=?inicio=$anterior>$semana[$j]</small></a>"; for($i=$diaSemana+1;$i<$diaSemana+6;$i++){ $j=$i%7; echo "<td align=center><small>$semana[$j]</small>";} $j=$i%7; $proximo=calendario($inicio,"7 days"); echo "<td align=center><small><a href=?inicio=$proximo>$semana[$j]</a></small>"; echo "<tr>"; for($i=0;$i<7;$i++){ $proximo=calendario($inicio,"$i days"); $dia=date('d',strtotime($proximo)); if($i==0){$bgcolor="bg-warning";}else{$bgcolor="";} echo "<td class='col-1 display-6 $bgcolor' align=center>$dia";} echo "</div>"; Nota: o iMasters não permite publicar s*e*x, assim eu tive que improvisar, eu escrevi séx.
  12. Frank K Hosaka

    quantidade de registros no bd

    Se você quer gravar as cores que foram escolhidas em cada rodada, eu sugiro esse código: <?php // astudy.php if(isset($_POST['cores'])){ $cores=$_POST['cores']; $ggCon=new mysqli("localhost","root","","astudy"); $coresescolhidas=""; foreach($cores as $cor){$coresescolhidas.=$cor.",";} $sqlVF=mysqli_query($ggCon,"insert into tab_aprendiz (cores) values ('$coresescolhidas')"); $query=mysqli_query($ggCon,"select cores from tab_aprendiz order by id desc"); $coresescolhidas=$query->fetch_assoc()['cores']; echo "As cores escolhidas foram $coresescolhidas<br>"; echo "<input type=submit value=Novo_Registro onclick=location.replace('astudy.php')>"; exit;} ?> <form method=post> <table> <tr><td>38 Verde<td><input type=checkbox name=cores[] value=verde> <tr><td>40 Amarelo<td><input type=checkbox name=cores[] value=amarelo> <tr><td>42 Azul<td><input type=checkbox name=cores[] value=azul> <tr><td>44 Branco<td><input type=checkbox name=cores[] value=branco> <tr><td><input type=submit> </table> </form>
  13. Frank K Hosaka

    correio calcular frete

    astudy2.html <script> async function frete(cepcomprador) { form = new FormData() form.append('ceplojista','35482657') form.append('cepcomprador',cepcomprador) response=await fetch("astudy.php", {method: "POST", body: form}) body=await response.text() divpainel.innerHTML=body} </script> <input placeholder=cepDoComprador onchange=frete(value)> <div id=divpainel></div> -------------------------------------------------------- astudy.php <?php $cepDoLogista = $_POST['ceplojista']; $cepDoComprador = $_POST['cepcomprador']; // DADOS DO PRODUTO A SER ENVIADO $peso = 1; $valor = 100; $tipo_do_frete = '41106'; $altura = 6; $largura = 50; $comprimento = 50; $url = "http://ws.correios.com.br/calculador/CalcPrecoPrazo.aspx?"; $url .= "nCdEmpresa="; $url .= "&sDsSenha="; $url .= "&sCepOrigem=" . $cepDoLogista; $url .= "&sCepDestino=" . $cepDoComprador; $url .= "&nVlPeso=" . $peso; $url .= "&nVlLargura=" . $largura; $url .= "&nVlAltura=" . $altura; $url .= "&nCdFormato=1"; $url .= "&nVlComprimento=" . $comprimento; $url .= "&sCdMaoProria=n"; $url .= "&nVlValorDeclarado=" . $valor; $url .= "&sCdAvisoRecebimento=n"; $url .= "&nCdServico=" . $tipo_do_frete; $url .= "&nVlDiametro=0"; $url .= "&StrRetorno=xml"; $xml = simplexml_load_file($url); $frete = $xml->cServico; $aluno = "<h1>Valor do frete: R$ ".$frete->Valor." <br> Prazo: ".$frete->PrazoEntrega." dias</h1>"; echo $aluno; ?>
  14. Frank K Hosaka

    [Resolvido] quebra de linha do php para o javascript

    Muito obrigado! Desejo a todos um novo ano cheio de descobertas. Ontem eu aprendi com o Omar que é possível escrever echo "{$variável}" no PHP, isso não tem o menor efeito mas faz o PHP ficar mais próximo do Blade PHP.
  15. Frank K Hosaka

    A paginação

    Ontem de madrugada encontrei essa dica javascript - How do I get the value of the selected item in a datalist using pure JS? - Stack Overflow e com ele eu consegui terminar o meu código de paginação. O Laravel já tem um código pronto para ser usado, mas ele é funcional para uma tabela com 150 itens, o meu tem mais de 1500 itens, isso iria entupir a apresentação com um monte de guias. O meu só tem duas guias, o próximo e o anterior. E só lista 10 itens de cada vez. O mais bacana dessa madrugada é que eu aprendi a usar um pouco mais a função console.log( ) do JavaScript, procurei exaustivamente uma maneira de obter o número do item da option do datalist, mas foi em vão. A dica que eu encontrei na internet é muito engenhosa, o rapaz encontrou no JavaScript uma função que procura um atributo da option que foi selecionada. Como o option não tem a opção de index, ele sugere criar uma. No Controller eu havia pedido para o Laravel trabalhar com os produtos em ordem alfabética, ou seja, a própria consulta já é um index. O único problema foi encontrar um jeito de colocar o index da consulta no option do datalist. Com quase tudo resolvido, o problema é fazer o loop do JavaScript funcionar. Graças ao fórum iMasters ou Script Brasil eu consegui uma ajuda. Eu recebi a sugestão de garantir que uma das variáveis dentro do loop do JavaScript seja do tipo inteiro. Eu achei a sugestão um absurdo, mas depois eu lembrei que o mundo dos computadores é bem diferente das abstrações que a gente inventou como os números inteiros e os números reais. Finalmente, aqui está o código. Ele foi escrito em Blade PHP, não é muito diferente do PHP: a diferença é que ele usa @ ao invés do tradicional <?php >. Nesse projeto pretendo trabalhar com o Bootstrap. Já o class="w600" não é Bootstrap, e sim uma gambiarra que eu fiz onde .w600 {width=600px}. Na imagem que eu deixei, dá para ver que eu ajuntei o nome do produto junto com o código dele, a minha ideia é para o usuário procurar o produto tanto pelo nome bem como pelo código. O datalist é muito bacana, pena que não dá para alterar a fonte e nem fazer a busca semelhante, ou seja, se você digitar "limão", ele não lista se foi cadastrado "limao". @include('menu') <script> var icontrole document.title='Produto';btmenu.innerHTML='Procurar produto por nome' function controle(comando){ if(comando=="proximo"){ if(icontrole<produtos.options.length){icontrole+=10;show(icontrole)}} if(comando=="anterior"){ if(icontrole>9){icontrole-=10;show(icontrole)}}} function lista(input){ option=Array.prototype.find.call(produto.list.options,function(option){ return option.value === input}) show(option.getAttribute("id"))} function show(j){ j=parseInt(j) divshow.innerHTML="" for(i=j;i<=j+9;i++){ divshow.innerHTML+=produtos.options[i].value+"<br>"} produto.value="" icontrole=j} </script> <div class="w600 m-auto"> <input list=produtos autofocus id=produto onchange=lista(value)> <datalist id=produtos> @foreach($prod as $key=> $pr) <option id={{$key}}>{{$pr->prod}} [{{$pr->codprod}}] @endforeach </datalist></div> <div class="w600 m-auto" id=divshow></div> @if(empty($show)) <script>show(0)</script> @php $show="já começou" @endphp @endif <div class="w600 m-auto"> <input type=submit value=Anterior onclick="controle('anterior')"> <input type=submit value=Próximo onclick="controle('proximo')"> </div>
  16. Frank K Hosaka

    [Resolvido] quebra de linha do php para o javascript

    Bom dia, Omar, Eu sei que é muito difícil levar uma bofetada na face direita e logo em seguida levar outra bofetada na face esquerda, logo faz sentido você usar o seu direito de resposta e no meio da sua raiva você acabou me arrastando no meio da briga. Desde 2020, eu sempre usei as variáveis do PHP sem nenhum escape, sem nenhum colchete e menos ainda o fechamento do marcador input, logo eu uso a lei do menor esforço e sempre escrevo echo "<input type=$type>"; ao invés de usar o seu estilo acadêmico. Eu não defendo o estilo acadêmico. Se o interpretador entende <td>item<td>item como <td>item</td><td>item</td> não vejo nenhum motivo para defender a gramática formal, quando o interpretador funciona se eu usar a gramática informal. O problema não sou eu, e sim o interpretador que é flexível demais. O mesmo problema é o fórum. Sempre encontro questões difíceis de entender, às vezes eu me arrisco a responder, mas nunca sei se a pessoa leu a minha resposta. Eu só recebo a resposta, quando a minha solução não funciona, e aí eu levo bofetada na direita e outra bofetada na esquerda. Perguntei para o padre como enfrentar esse tipo de situação e ele sugeriu entrar no fórum com a seguinte mensagem "bom dia para o senhor também". O padre também não ajuda muito. Mas temos que agradecer por termos esse fórum. Graças a ele, ficamos sabendo que existem pessoas piores que os nossos cunhados.
  17. Frank K Hosaka

    Dois arquivos com a mesma sintaxe mas só um funciona - Erro 500

    Agora que eu vi com mais atenção, os dois arquivos usam sintaxes diferentes. O primeiro é assim: $variavel=$_POST['variavel']; O segundo é assim: $variavel="string"; O primeiro arquivo espera a chegada da informação. Para saber se a informação chegou onde deveria, eu vou lá atrás, e mudo o arquivo assim <form method=post action=go.php><input name=variavel></form> e mudo para o método get, assim: <form action=go.php><input name=variavel></form> e depois do submit, eu vejo na barra de navegação algo do tipo: http:go.php?variavel=123 Se você não gosta de mexer lá atrás, o jeito é mexer lá na frente assim: if (isset($_POST['variavel'])){$variavel=$_POST['variavel'} else {echo "o banco de dados não aceita valores nulos, a menos que você dê um jeito de colocar explicitamente $variavel=null e o banco de tem que estar autorizado para receber a constante null para o campo selecionado"; exit;}
  18. Frank K Hosaka

    macro de substituicao

    Eu achei bem estranho o uso do dialeto ${...} dentro do PHP, quem usa esse dialeto é o JavaScript Ajax. Testei aqui no meu laboratório, e o PHP retornou a mensagem de erro. Outra coisa estranha é a chave ['CAMPO'], eu não sei se isso existe no mundo do array do PHP, eu só vi essa chave, quando eu trabalho com um banco de dados. Enfim, para testar o seu código, eu tive que fazer várias modificações, assim: <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select prod from tbprod limit 10"); $Estrutura=$query->fetch_all(MYSQLI_ASSOC); echo "<table>"; for ($iFor = 0; $iFor <= count($Estrutura)-1; $iFor++): echo "<tr><td>".$Estrutura[$iFor]['prod']."</td>"; endfor; Em tempo, consegui criar um array para $Estrutura, ele ficou assim: <?php $Estrutura=[["CAMPO"=>"arroz"],["CAMPO"=>"feijão"],["CAMPO"=>"batata"]]; echo "<table>"; for ($iFor = 0; $iFor <= count($Estrutura)-1; $iFor++): echo "<tr><td>".$Estrutura[$iFor]['CAMPO']."</td>"; endfor;
  19. Frank K Hosaka

    [Resolvido] quebra de linha do php para o javascript

    Eu escreveria assim: <?php echo "<script>" echo "vCod = button.getAttribute('data-bs-grCODIGO')"; echo "Nom = button.getAttribute('data-bs-grNOME')"; echo "</script>"; mas eu prefiro usar o PHP aonde for necessário, ou seja, colocaria tudo na linguagem HTML, assim <script> vCod = button.getAttribute('data-bs-grCODIGO') Nom = button.getAttribute('data-bs-grNOME') </script> Para mim, só vale a pena usar o dialeto PHP se for necessário usar uma variável: <?php $type="submit"; echo "<input type=$type>"; Essa última instrução só funciona se você usar aspas duplas, não funciona se usar aspas simples. Ou seja, o HTML já tem um monte de regras, o JavaScript tem outras e o PHP também. O melhor é usar o HTML sempre, mas se ele não oferecer o recurso que você espera, aí sim você pode pegar outros recursos, mas lembrando que novo recurso usa um novo dialeto.
  20. Frank K Hosaka

    for

    Agora, eu tive essa ideia: <div style="width: 100; height: 100; display: inline-block"> <select id=select1 onchange=select2.selectedIndex=select1.selectedIndex> <option>editar</option> <option>deletar</option> <option>adicionar</option> </select> </div> <div style="width: 100; height: 100; display: inline-block"> <select id=select2 onchange=select1.selectedIndex=select2.selectedIndex> <option>editar</option> <option>deletar</option> <option>adicionar</option> </select> </div>
  21. Frank K Hosaka

    for

    Eu recebi várias mensagens de erro na hora de testar o seu código por aqui, primeiro com a função SELECT que o VS Code não reconheceu e segundo com a variável $Ex1Select que não foi definida no primeiro bloco. Para tentar a ideia que você sugeriu, montei o seguinte código: <?php $Ex1Select="amarelo"; $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tbEx1"); $select = $query->fetch_all(MYSQLI_ASSOC); echo "Exemplo 01 <select>"; foreach ($select as $dados) { echo "<option value=".$dados['ex1name'].">"; if($Ex1Select == $dados['ex1name']){echo "selected ";} echo $dados['ex1name']."</option>";} echo "</select>"; $Ex2Select="amarelo"; $query=$mysqli->query("select * from tbEx2 where ex2name='$Ex1Select'"); $select=$query->fetch_all(MYSQLI_ASSOC); echo "Exemplo 02 <select>"; foreach ($select as $dados) { echo "<option value=".$dados['ex2name'].">"; if($Ex2Select == $dados['ex2name']){echo "selected ";} echo $dados['ex2name']."</option>";} echo "</select>"; Como você pode ver, eu defini previamente a variável $Ex1Select logo no primeiro bloco, isso porque o PHP não é capaz de saber qual a opção que o usuário escolheu, isso só o JavaScript é capaz. Já a segunda caixa de combinação restringe ao valor que o usuário escolheu no primeiro bloco. Pelo que eu entendi pelo enunciado, são duas caixas de combinação com os mesmos valores, o que você faz num, o outro repete. Isso não dá para ser feito pelo PHP.
  22. Frank K Hosaka

    for

    Até onde eu sei, o PHP não é capaz de ver o que tem na página HTML, quem faz isso é o JavaScript. No código a seguir, eu pedi para o JavaScript fazer auditoria no elemento select e mandar todas as opções para o PHP, e o PHP monta o select à imagem e semelhança do que o JavaScript encontrou. <?php if(isset($_GET['gambiarra'])){ $gambiarra=$_GET['gambiarra']; $opcoes=explode(',',$gambiarra); echo "<select id=phpSelect>"; foreach($opcoes as $opcao){ echo "<option>$opcao</option>";} echo "</select>"; exit;} ?> <select id=meuSelect> <option>teste</option> <option>green</option> <option>blue</option> <option>teste2</option> <option>red</option> <option>orange</option> </select> <form id=frmgambiarra> <input type=hidden name=gambiarra id=inpgambiarra> </form> <script> select = document.getElementById("meuSelect") array=select.children opcoes=[] for(i=0;i<=array.length-1;i++){opcoes.push(array[i].outerText)} inpgambiarra.value=opcoes frmgambiarra.submit() </script>
  23. Frank K Hosaka

    ocultar primeiro registro

    Essa solução pode ser implementada diretamente na consulta <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tb_aprendiz where cores != '123cor'"); var_dump($query->fetch_all(MYSQLI_ASSOC)); Também é possível turbinar a tabela com um novo campo chamado Exibir (campo do tipo TINYINT(1), onde 0 representa falso e qualquer outro valor como verdadeiro), e a nova redação ficaria assim <?php $mysqli=new mysqli("localhost","root","","astudy"); $query=$mysqli->query("select * from tb_aprendiz where Exibir"); var_dump($query->fetch_all(MYSQLI_ASSOC));
  24. Frank K Hosaka

    ocultar primeiro registro

    <?php $con=new mysqli("localhost","root","","astudy"); $sql = mysqli_query($con, "select * from tab_aprendiz where cores > '1cor' "); while($linha = mysqli_fetch_array($sql)){ echo $linha['cores']."<br>";}
  25. Frank K Hosaka

    Não consegui usar o comando for do JavaScript

    A sua sugestão de trabalhar com a variável inteira deu certo! Eu fiz assim: function show(k) { j = parseInt(k); etc Valeu! Aqui a listagem final: <?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(k){ j=parseInt(k); divshow.innerHTML=""; for(i=j;i<j+9;i++){ divshow.innerHTML+=produtos.options[i].value+"<br>"}} </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>
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.