Ir para conteúdo
Fórum Script Brasil

Frank K Hosaka

Membros
  • Total de itens

    1.576
  • Registro em

  • Última visita

Tudo que Frank K Hosaka postou

  1. A tela do meu celular é bem pequena, eu precisaria de duas linhas para colocar todas as opções do meu sistema (eu ainda não sei como fazer aquele painel com três traços que desliza para o usuário escolher a opção), assim eu montei a seguinte gambiarra: menu.php <meta name="viewport" content="width=device-width, initial-scale=1"> <style> ul {margin: 0; padding: 0; list-style-type: none;} th {border: 1px solid blue;} </style> <?php $orçamento="<li onclick=window.location.replace('orcamento.php')>Orç</li>"; $diario="<li onclick=window.location.replace('diario.php')>Diário</li>"; $balancete="<li onclick=window.location.replace('balancete.php')>Bal</li>"; $pagar="<li onclick=window.location.replace('pagar.php')>Pagar</li>"; $produto ="<li onclick=window.location.replace('produto.php')>Prod</li>"; $fornecedor="<li onclick=window.location.replace('fornecedores.php')>Forn</li>"; $cliente="<li onclick=window.location.replace('cliente.php')>Cliente</li>"; echo "<ul><table><tr><th>$orçamento<th>$diario<th>$balancete<th>$pagar<th>$produto<th>$fornecedor<th>$cliente</table></ul>"; ?>
  2. O código que segue é motivo de muita alegria, ele é pequeno e funciona. Se você quiser testar, vai ser necessário ter um banco de dados. Eu achei melhor não divulgar a minha estrutura, pois eu sou um péssimo exemplo em matéria de codificação e nomenclatura de tabelas e campos, só deixei o código só para compartilhar as gambiarras que eu faço em casa. <script>function incluir(){selecionar.submit();}</script> <script>function enviar(id){alert("foi enviado o codigo"+id);}</script> <a href="#" onclick='incluir()'>Incluir</a> <?php $mysqli=new mysqli("localhost","root","hacker","diario"); //selecionar produto echo "<form id='selecionar' method='post'><input type='hidden' name='selecionar'></form>"; //ativa POST['selecionar'] if (isset($_POST['selecionar'])){$sql="select * from tbprod order by prod limit 50"; $proc = $_POST['proc'] ?? null; if (empty($proc)) {;} else { if (strlen($proc) > 1) {$sql="select * from tbprod where prod like '%$proc%' order by prod limit 50"; if ($proc[0]=="@"){$proc=substr($proc,1); $sql="select * from tbprod where codforn like '%$proc%' order by prod limit 50";}} else {$sql="select * from tbprod where prod like '$proc%' order by prod";}} echo "<form method='post'><br>Procurar: "; echo "<input name='proc' autocomplete='off' value=$proc >"; // ativa POST['proc'] echo "<input type='hidden' name='selecionar'></form>"; // ativa POST['selecionar'] echo "<table><tr><th>Código</th><th>Descrição</th></tr>"; $query=$mysqli->query($sql); while($linha = $query->fetch_assoc()) { $codprod = $linha['codprod']; $codprod = "<a href='' onclick='enviar($codprod)'>".$linha['codprod']."</a>"; echo "<tr><td align='right'>$codprod</td><td>".$linha['prod']."</td></tr>";} echo "</table>";} mysqli_close($mysqli); ?>
  3. Valeu, Wash, isso ajuda bastante. Eu ainda sou novato com os painéis de inspeção do navegador, mas se o Arquiteto me ajudar, vou dar um jeito de arrancar os pixels do form.
  4. O código que segue é uma pequena parte que tirei do meu projeto orcamento.php <script> function excluir(id) {excluir.value=id;omega.submit();} </script> <?php $id=20; echo "<a href='#' onclick='excluir($id)'>$id</a>"; echo "<form id='omega' method='post'><input type='hidden' name='excluir' id='excluir'></form>"; if (isset($_POST['excluir'])) {echo "<script>alert('rotina excluir');</script>";} ?> Eu testei e ele funciona, ele só não funciona dentro do meu projeto. Com a ajuda da ferramenta inspeção do navegador descobri que o <form> estava dentro de uma tabela, ou seja, eu esqueci de fechar a tabela </table> bem acima do código, e certamente o Javascript não tem a menor chance de trabalhar numa página bagunçada como eu fiz. Depois de consertar o erro, depois de verificar que o <form> estava intato e exatamente onde eu esperava na janela de inspeção do navegador, mesmo assim, o programa simplesmente não andava. O programa é bem simples. O PHP não é capaz de enxergar a opção que o usuário escolheu, não é o caso do Javascript. Para o Javascript mandar para o PHP o que foi escolhido eu criei um <form method='post'>, e ele mesmo submete o formulário. Por que funciona num código e não funciona no outro código, isso é coisa que eu não entendo. Eu não tive outra escolha, senão apelar. Eu comecei com o id do input que estava dentro do form, mudei para 'retirar' e certamente tive que mudar o nome do elemento dentro do código Javascript. E, por mágica, o meu código orcamento.php começou a andar. A conclusão que eu cheguei é que o Javascript do orcamento.php não gosta que você dê o mesmo nome da função para um elemento (id) dentro do HTML, já o Javascript do outro subcódigo que eu montei para procurar um erro meu, esse pouco importa com o nome dos bois. Pode um negócio desses?
  5. Eu tenho duas tabelas nesse código: <table><tr><th><th><th></tr> <tr><td><form><input type='submit' value='anterior'></form> <td valign=top>Pedido 300.177 de 29/04/2022 R$ 4,00<td><form><input type='submit' value='novo'></form></tr> <tr><td>Cliente<td>Casas Bahia</tr></table> <?php for ($i=0;$i<=10;$i++) { echo "<br>"; } ?> <table><tr><th>Produto<th>Qt<th>Unitário<th>Total</tr> <tr><td>Jaboticada<td>1<td>2,00<td>2,00</tr> <tr><td>Berinjela<td>0,5<td>4,00<td>2,00</tr></table> A distância entre as linhas da primeira tabela é bem maior que o da segunda tabela. A primeira vista, o código não tem nenhum marcador </th> e </td>, mas eles não alteram o resultado. Também consultei o Google, e tentei coisa do tipo <style>table { table-layout: auto; width: 100%; } </style>, mas o resultado foi um desastre. Diante do exposto, a minha saída é compartilhar o meu abacaxi aqui no fórum, e pedir ajuda para igualar a distância das linhas da segunda tabela na primeira.
  6. Consegui encontrar no endereço Multi-line alert in Javascript - Stack Overflow a solução para o problema da multinha no painel do alert( ) do Javascript. O meu código ficou assim: <?php $cliente = "Petroleo Brasileiro SA Petrobras"; $end = "Av Republica do Chile 65 Centro, Rio de Janeiro-RJ"; $cnpj = "33.000.167/0001-01"; $nota = "Cliente desde 28/09/1966"; $tel = "(21) 3224-4477"; $mensagem =" Cliente: $cliente \\n Endereço:$end \\n CNPJ: $cnpj \\n Nota: $nota \\n Telefone: $tel"; echo '<a href="" onclick="alert('."'".$mensagem."'".')">'.$cliente.'</a>'; Note que acrescentei um espaço em branco logo no começo da variável $mensagem para o alert( ) trazer tudo alinhado.
  7. Se você tirar o segundo marcador <form method='post'> do código, o input "novo" vai ficar desalinhado. Eu ainda não sei o que é <thead> e <tbody>. Estou usando o método da tentativa e erro e aprendi que devo montar o cabeçalho com <th> e distribuir as células com o correpondente <td>. Quanto ao fechamento dos marcadores, foi por acaso que descobri que ele não faz falta no meu projeto, por enquanto. Estou aprendendo HTML aos trancos e barrancos, assim que terminar o meu projeto, vou tentar eliminar ?aquele monte de notificações que aparecem na rotina de inspeção do navegador, pretendo criar um código PHP com HTML genérico e depois incluir nos outros códigos, mas isso vai demorar bastante. Mas eu sinto que o HTML é mais exceção do que regra. Nesse fórum, eu aprendi que não preciso usar o marcador ?>, quando o código é somente PHP. No Google aprendi que não preciso usar o marcador /> no input ou o marcador </input>. O elemento <table> estou estudando na base da tentativa e erro, descobri que não preciso de todos os <td> que correspondam aos <th> que defini no começo da tabela, mas preciso de um <tr></tr> para definir as linhas do elemento <table>. Já os estilos embutidos são um problema sério, tem hora que vejo coisa do tipo <td align=left> outra hora vejo <td align='left'> e outra hora vejo <td align=LEFT>. Esse drama do HTML também encontro no PHP, eu queria escrever tudo em minúsculo, mas o PHP não aceita $_post em minúsculo, tudo tem que ser em caixa alta, mas é o PHP que me ensina a omitir o fechamento dos marcadores, no PHP quanto mais você escreve mais notificações você recebe, para fugir delas é que tento digitar o menos possível. Essa é a poderosa lei do menor esforço. Mesmo assim, obrigado por me lembrar que é importante valorizar a padronização na codificação, mas eu ainda estou entrando no mundo da Web com a ajuda do PHP. O PHP é bom demais para quem não sabe nada de CSS, Javascript e HTML, eu comecei com echo 'olá mundo', hoje eu escrevo coisas mais robustas como $mysqli = new mysqli(servidor,usuário,senha,bancodedados), e o PHP está me ensinando que o HTML faz sentido, é o único meio do celular enxergar o banco de dados lá no notebook, eu ainda não tenho a menor ideia de como fazer a conexão mais estável nesses serviços de hospedagem. Mas se o Arquiteto permitir, um dia eu chego lá.
  8. Eu criei uma tabela para colocar no topo da tela do celular dois comandos, uma mensagem, e na linha seguinte o nome do cliente. O código é mais ou menos assim: _1.php <?php $mensagem = "pedido 10.115"; $cliente = "Casas Bahia"; echo "<table><tr><th><th><th></tr>" . "<tr>" . "<td><form method='post'><input type='submit' value='anterior'><input type='hidden' value='teste1'></form>" . "<td valign=top><font color=red>$mensagem" . "<td><form method='post'><input type='submit' value='novo'></form></tr>" . "<tr>" . "<td>Cliente:<td>$cliente</tr></table>"; O problema é que o último input ficou desalinhado. No Google, encontrei a opção de usar o marcador <td valign=top> para consertar o visual. O visual ficou bom, mas a minha intuição me dizia que eu fiz uma bela besteira, e que eu jamais poderia usar a dica do Google. A besteira que eu fiz foi enorme e bem difícil de achar; no meu caso, eu simplesmente esqueci de usar o segundo marcador <form> e o <table> ficou desalinhado porque ele encontrou o fim do marcador </form> sem saber onde ele começava.
  9. Hoje decidi copiar o código do fornecedor.php, fiz algumas alterações e chamei de cliente.php. Na hora de testar, não encontrei nenhuma resposta na hora de procurar o cliente com um critério, tipo "petroleo". Pedi ajuda ao Google, e a primeira dica que eu encontrei é que usei o critério de maneira errada, ao invés de digitar "petroleo" deveria digitar "Petroleo", e o rapaz deu uma dica de como turbinar o comando do Select Like de forma a não considerar as letras maiusculas e minusculas. Isso eu queria não fazer. Se o comando funciona na rotina do fornecedor, por que não funciona com o cliente? Estudei a tabela tbforn e tbcliente dentro do MySQL, bem como os campos forn e cliente, e eu vi que as propriedades charset/colletion estavam diferentes. Para resolver o problema copiei os parâmetros da tabela que funciona e copiei na tabela que não funciona. E o código cliente.php funcionou do jeito que eu queria. Agora, charset/colletion, isso eu não faço a menor ideia do que seja, principalmente com uma descrição assustadora como utf8mb4 e utf8mb4_0900_ai_ci. O certo é estudar mais um pouco para ver se estou usando corretamente o MySQL, mas o problema é que não vai sobrar tempo para ver o Facebook.
  10. Agradeço pelo código do modal, mas ainda é cedo para implantar no meu projeto. A minha área do trabalho é a tela do celular, ainda não consigo dividi-lo em <body>, <div>, <header>, vou empurrando tudo pelo echo do PHP, no famoso método da tentativa e erro.
  11. A maneira mais simples de usar o comando alert no HTML é assim: <a href="" onclick="alert('olá mundo')">Saudação</a> Agora, colocar isso dentro do PHP é um Deus nos acuda. Levei um ano, mas finamente consegui montar o código PHP, ele ficou assim: _1.php <?php $cliente = "Petroleo Brasileiro SA Petrobras"; $end = "Av Republica do Chile 65 Centro, Rio de Janeiro-RJ"; $cnpj = "33.000.167/0001-01"; $nota = "Cliente desde 28/09/1966"; $tel = "(21) 3224-4477"; $mensagem ="$cliente $end $cnpj $nota $tel"; echo '<a href="" onclick="alert('."'".$mensagem."'".')">'.$cliente.'</a>'; Esse código é bem meia boca, ele só mostra o quanto o programador gosta de fazer gambiarra, o Google tem outros exemplos que mostram mensagens na tela de forma mais profissional, mas no meu caso ele já me ajuda bastante. Estou fazendo um orçamento no espaço de uma tela de um celular e só encontrei espaço para colocar o nome do cliente. Se o usuário precisar de mais informações do cliente, basta clicar no link do cliente. O código funciona, só que as informações do cliente aparecem amontoadas, tentei usar o código \n no meio da mensagem para tentar quebrar a linha, mas aí o Javascript se recusou a executar o serviço.
  12. O meu problema é transferir uma data do PHP e passar para o Javascript e depois trazer de volta para o PHP. Fiz o teste com o meu código, e deu erro. Escrevi '2022-04-25' e o Javascript retornou '2022-04-24' hoje de manhã. Como o meu conhecimento em PHP e Javascript é bem precário vou evitar de usar a variável tempo entre os dois sistemas. No meu caso eu vou usar o MySQL, seleciono a data num canto, e vou chamar o MySQL no outro canto. Quanto ao código HTML, só agora é que estou aprendendo a usar a ferramenta de inspeção do navegador, onde encontrei centenas de notificações, isso é um outro problema que vou empurrando com a barriga. No momento, só estou usando o notebook, o celular e a internet como um brinquedo de entretenimento, bem que gostaria de ganhar dinheiro com isso, mas estou ciente de que estou bem longe de receber a credencial de técnico em informação. Mais uma vez, agradeço pelas suas intervenções.
  13. Trabalhar com data no PHP não é fácil e menos ainda no Javascript e os exemplos que encontrei no Google são bem difíceis. Assim, eu decidi criar o meu próprio código para resolver o problema: _1.php <script>function teste(id) {dia.value=Date(id).substr(3,13);omega.submit()}</script> <?php $dia = date('Y-m-d'); echo "$dia<br><br>"; echo "<input type='submit' onclick='teste($dia)' value='Verificar'><br><br>"; echo "<form action='_1.php' id='omega' method='post'><input id='dia' name='dia'></form>"; if (isset($_POST['dia'])) {echo $_POST['dia']." -> "; echo date('Y-m-d',strtotime($_POST['dia']));} ?>
  14. Depois de duas semanas, finalmente consegui montar o código do jeito que eu queria: _1.php <script> function teste(id) { alert("o número escolhido foi "+id); alpha.value=id; omega.submit();} </script> <?php $mens = $_POST['alpha'] ?? null; if (isset($mens)) {echo "o número escolhido foi $mens"; exit;} for ($i=1;$i<=10;$i++) { echo "<a onclick='teste($i)' href='#'>$i</a><br>" ;} // {echo "<li onclick='teste($i)'>$i</li>";} echo "<form id='omega' action='_1.php' method='post'><input type='hidden' name='alpha' id='alpha'></form>"; Eu queria usar o elemento hyperlink <a> e não a lista <li>, mas eu não entendia por que o código não funcionava quando usava o elemento <a>. Pesquisando o Google, encontrei um atributo assim href="#" e eu incorporei no meu código e deu certo. Acredito que o meu erro foi de lógica. Eu tinha um <form action="1_php"> bem como um hyperlink <a href="1_php"> e acredito que o JavaScript não queria submeter o formulário porque ele já havia recebido a mesma solicitação no hyperlink.
  15. Eu acredito que faltou o atributo name nos inputs, name='email' e name='senha', tudo em minúsculo, de acordo com o POST que é verificado no código PHP.
  16. Bom dia, Para a variável ser avaliado dentro de um texto no PHP, você precisa usar aspas duplas assim: <?php $nome = "João"; $texto = "O $nome está dirigindo"; echo $texto; Caso não seja possível usar aspas duplas, a sintaxe é essa: <?php $nome = 'João'; $texto = 'O '.$nome.' está dirigindo'; echo $texto;
  17. Ontem montei uma página que trabalha com dois registros contábeis na mesma página, antes trabalhava com apenas um. Cada registro tem um campo para data, mas o datepicker só funcionava num dos registros, não sabia como fazê-lo funcionar no outro. Depois de uma longa consulta no Google, encontrei um código bem simples, que mostra a versatilidade do JavaScript. Olha só o código: <script> $(function() { $("#datepicker1,#datepicker2").datepicker(); }); </script> fonte: https://stackoverflow.com/questions/16169654/conflict-with-two-jquery-datepickers-on-same-page No meu caso, chamei os inputs de data e data2, não há nenhuma necessidade de chamar os inputs com nomes tão longos como o datepicker.
  18. Descobri o erro. O problema não está na quantidade de POST ou GET que você quer usar no código. O problema está na quantidade de banco de dados que você quer abrir. Toda vez que você executa $myqli = new mysqli você abre um novo banco de dados, depois da décima quinta tentativa, creio que o MySQL é que trava o PHP. Para consertar o erro, favor acrescentar o seguinte código no final do script mysqli_close($mysqli);
  19. Eu achei bem complicado essa função que muda a cor do body, a minha sugestão é mudar para esse código: <script> function fundo() { var cor = document.body.style.backgroundColor; if (cor=='black') {document.body.style.backgroundColor = 'white';} else {document.body.style.backgroundColor = 'black';}} </script> <button id='btn' onclick='fundo()' style="background-color='red' ">Mudar a cor do fundo</button>
  20. Matriz multi dimensional não é a minha praia, o máximo que eu consegui foi isso: _1.php <?php $total=[["a",8],["b",7],["qqc",10],["d",9],["e",7],["f",8],["g",0],["i",7]]; $nota = array_column($total,1); echo "<pre>"; print_r($nota); echo "</pre>";
  21. Depois de uma semana de tentativa e erro, cheguei nesse código: _2.php <style> li { list-style-type: none; } </style> <script> function alpha(id) {prod.value = id; omega.action="_2.php"; omega.submit();} </script> <?php if (isset($_POST['prod'])){echo "Você selecionou o produto ".$_POST['prod'];exit;} for ($i=1;$i<=10;$i++) {echo "<li id=$i onclick='alpha(id);'>$i</li>";} echo "<form method='post' id='omega'><input type='hidden' id='prod' name='prod'></form>"; Testei o código no Microsoft Edge e no Samsung Internet. Para melhorar a visibilidade no Samsung Internet acrescentei a seguinte instrução em HTML: <meta name="viewport" content="width=device-width, initial-scale=1"> isso bem no começo do código. Também tirei o ponto e vírgula no evento onclick. Espero que essa dica seja útil para você.
  22. Obrigado pela resposta. Faz muito tempo que venho apanhando com o que eu chamava de Java, agora estou sabendo que existe Java e Javascript. Ainda não tenho a menor ideia de como separar os dois, e talvez isso explique porque as minhas tentativas trazem resultados inesperados. No seu código não há nenhuma menção a uma biblioteca como é o caso do Ajax, isso é o que eu chamava de "Java puro". Eu gastei um tempo enorme para estudar a variavel no Java(script?), e não consegui resolver o problema. Eu tinha coisa do tipo _2.php <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $(document).ready(function(){ $("li").click(function(){ omega = $(this).text(); alert(omega); $("div#div1").html("<form id='alpha' action='_2.php' method='post'><input type='submit' name='prod' value=" + omega + "></form>"); }); }); </script> <style>li { list-style-type: none; }</style> <?php if (isset($_POST['prod'])){echo $_POST['prod'];} echo "<div id='div1'></div>"; for ($i=1;$i<=10;$i++) { echo "<li>item $i </li>";} Nesse caso, eu selecionava "item 4", e o Ajax confirmava "item 4" pelo alert, mas na hora de criar o input, ele gravou como "item" e não como "item 4". Mas eu fui além, eu criei um formulário. Eu usei o comando inspeção do navegador, e não encontrei o elemento formulário. Isso significa que eu não tenho como submeter o formulário pelo Javascript, uma vez que ele só existe na tela do navegador, ou seja, o formulário só pode ser submetido com a ajuda do usuário. Eu queria muito desistir de usar o método POST, pois apresenta mais problema que solução. E também queria desistir do Java(script?) pelo mesmo motivo. Assim decidi valorizar mais o PHP e o método GET. O método POST trava o navegador, ou seja, não posso usar o botão atualizar pois o navegador alerta que todo o processo pode ser repetido com todos os dados que já foram passados anteriormente, e isso dificulta bastante a lógica do que eu esperava fazer. O meu código PHP tem um monte de limitações. Eu posso executar no Notebook ou no celular, mas não ao mesmo tempo. É um aplicativo monousuário. O método POST é uma especie de solicitação que precisa ser resolvida com muito mais lógica que eu não disponho. O método PUT e GET é bem mais tipo mensageiro, que usa a barra de endereços, o desenvolvedor só precisa ter o cuidado com a lógica, sabendo que tem um monte de informação na barra de endereço que pode comprometer todas as rotinas, se o usuário apertar o botão atualizar. Quanto a segurança, sem dúvida que não existe nenhuma. Eu sou apenas um desenvolvedor que caiu de paraquedas. Graças a Deus, eu não preciso disso para comprar o pão de cada dia. Se dependesse disso, estaria morto de fome. O que motiva o meu estudo nessa área é que consigo fazer alguns códigos funcionarem, e mesmo com 63 anos vou aprendendo que a informação é importante, mais ainda se for legível para um maior número de pessoas.
  23. Eu não sei como criar um <input> pelo Ajax, mas eu sei como criar um <input> pelo PHP. O código que segue é completamente inútil, mas estou contente por conseguir fazer funcionar. Se você manja de Java, gostaria que você traduzisse o código Ajax em "Java puro". _3.php <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <script> $(document).ready(function(){ $("li").click(function(){ alert("olá mundo"); $(this).html("olá mundo"); $("div#div1").html("<?php echo '<input>'; ?>"); }); }); </script> <?php echo "<div id='div1'></div>"; for ($i=1;$i<=10;$i++) { echo "<li>item $i </li>";} ?>
  24. Eu fiz um código em PHP que limpa a tela por parte, e com ele cheguei na conclusão de que o PHP monta o HTLM lá no servidor e o Java monta o HTML lá no navegador. _2.php <?php echo "<div id=div1>"; for ($i=1;$i<=10;$i++) { echo "$i elefantes atrapalham muita gente <br>";} echo "</div>"; echo "<div id=div2>"; for ($i=11;$i<=20;$i++) { echo "$i elefantes atrapalham muita gente<br>";} echo "</div>"; ?> <input type="submit" value="apagar div1" onclick='div1.innerHTML=""'> <input type="submit" value="apagar div2" onclick='div2.innerHTML=""'>
×
×
  • Criar Novo...