
Frank K Hosaka
Membros-
Total de itens
1.576 -
Registro em
-
Última visita
Tudo que Frank K Hosaka postou
-
Como fazer um reencaminhamento de porta?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Redes
Conversei com o Felix no Shopping Popular de Diadema, e ele me informou que é necessário saber como mapear a rede e trabalhar com o IP estático para poder redirecionar as portas do modem. Isso está fora da minha capacidade, por enquanto. Nesse meio tempo, eu perdi a funcionalidade do WampServer de tanto mexer nos arquivos httpd.conf e no httpd-vhosts.conf do Apache. Para consertar o WampServer, eu desinstalei do Windows 11. Eu fui no endereço WampServer, la plate-forme de développement Web sous Windows - Apache, MySQL, PHP, depois de clicar no WampServer 64 bits, eu cliquei na opção "you can download it directly". Abri o arquivo de instalação. Graças a Deus, o servidor voltou a funcionar no notebook. Com a ajuda do Google, também consegui fazer o celular acessar o servidor pela rede WiFi. Acrescentei a linha "required ip 192.168.0" no httpd-vhosts.conf, ele ficou assim: <VirtualHost *:80> ServerName localhost ServerAlias localhost DocumentRoot "${INSTALL_DIR}/www" <Directory "${INSTALL_DIR}/www/"> Options +Indexes +Includes +FollowSymLinks +MultiViews AllowOverride All Require local #acesso pelo computador local Require ip 192.168.0 #acesso pela rede local </Directory> </VirtualHost> Durante dois anos, eu usei o túnel do ngrok para o celular acessar o servidor pela internet, mas ele não funciona mais. Eu pensei em usar o encaminhamento da porta para achar um outro caminho para o celular, mas por enquanto vou abandonar essa ideia. -
No Open Port Check Tool - Test Port Forwarding on Your Router (yougetsignal.com), o meu IP Externo é 189.54.219.174. Tentei usar a porta 10455, mas ele afirma que está fechado. No modem da Claro, defini assim: Server Name = localhost External Port Start = 10455 External Port End = 10455 Source IP Adress = 189.54.219.174 Protocol = TCP/UDP Internal Port Start = 80 Internal Port End = 80 Server IP Adress = 192.168.0.12 Wan Interface = wanbridge Ainda no modem da Claro, tenho IPV4 100.65.130.103, DNS Primário 181.213.132.2 e 181.213.132.3 (mas não estão sendo usados). A minha dúvida é saber se a porta 10455 está fechado lá no servidor "externo" ou se fiz uma tremenda besteira no meu servidor "interno". Eu uso Windows 11 com WampServer de 64 bits.
-
[Modal meu nome é "Joãoponês"]
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
O modal é coisa recente para mim. Hoje eu aprendi como colocar o modal no topo da tela e não no topo da página. Nesse caso, ao invés de usar position:absolute eu precisei mudar para position:fixed. O meu código menu.php ficou assim: <meta name="viewport" content="width=device-width, initial-scale=1"> <style> ul {margin: 0; padding: 0; list-style-type: none;} li {margin: 0; padding: 0; list-style-type: none;} th {border: 1px solid blue;} td {white-space: nowrap;} form {margin: 0;} .modal {display:none; position:fixed; background-color:#fefefe; border:1px solid;top:30%; padding:50px;} </style> <body ondblclick=divmodal.style.display="block"> <div id=divmodal class=modal onclick=divmodal.style.display="none"> <a href="orcamento.php">Orçamento</a><br> <a href="diario.php">Diário</a><br> <a href="balancete.php">Balancete</a><br> <a href="pagar.php">Pagar</a><br> <a href="pessoa.php">Pessoa</a><br> <a href="produto.php">Produto</a><br> <a href="apuracao.php">Apuração</a><br> </div> -
como fazer pendrive inicializável
pergunta respondeu ao kajal110 de Frank K Hosaka em Microsoft Windows
Criar mídia de instalação para o Windows (microsoft.com) -
Erro ao tentar abrir arquivo .xlsm no Windows 10
pergunta respondeu ao EAM2021 de Frank K Hosaka em Microsoft Windows
Aqui falta infomação, assim eu tomo a liberdade de falar do meu problema. Eu tenho uma planilha com recurso de macro (xlsm) hospedado no OneDrive. Esse é um tipo de arquivo que não dá para ativar o salvamento automático, mas pelo menos o Excel me lembra de salvar o arquivo, quando faço alterações. O problema é que nem sempre é possível savar o arquivo, e assim eu sigo a sugestão que o Excel me sugere, ou seja, salvar o arquivo atua com outro nome do tipo "copia do arquivo". Em seguida, eu excluo o antigo arquivo, e renomeio "copia do arquivo" para "arquivo", tudo pelo explorador de arquivos do Windows. -
Converter CSV Thunderbird/Outlook
pergunta respondeu ao horyho de Frank K Hosaka em Microsoft Windows
Faz muito tempo que não mexo com o Outlook e não conheço o Thunderbird e nem sabia que o Windows era capaz de trabalhar com os registros do programa. Mas se o serviço fosse meu, eu pediria para exportar tudo para o Excel, e de lá faria ajustes para os dados do Thunderbird serem compatíveis com o Outlook e vice-versa, para finalmente cada um importar o que tiver no Excel. -
Depois de atualizar o WampServer, depois de atualizar o PHP, é que eu consegui abrir o tutorial do Wash. O tutorial pediu para instalar o banco de dados de exemplo, eu cliquei nele, e assim entrei na tela do MySQL Workbench, mas não sabia como executar o script. Então, eu pedi para o Windows abrir o script do tutorial pelo Notepad++. Depois copiei todo o código. Entrei no MySQL com a minha "instância", e despejei todo o código do tutorial na janela do Query, e de lá fui executando um comando de cada vez, e assim consegui instalar o banco de dados do exemplo. Mais adiante precisei mexer no arquivo connection.php para o tutorial tabalhar com o banco de dados. E assim, consegui ver que o Wash tem e razão, é possível sim colocar aspas dentro de um modal. O problema é saber como. Com a ajuda do Notepad++ eu fui ver os códigos do Wash. Aquilo é um horror!!!!! O mundo do Wash é multiverso, lá tem altura, largura, profundidade e tempo, já o meu mundo é linear, só tem o meu umbigo. Lá tem espaçonaves com nomes robustos do tipo "wait", "função assíncrona", coisa que nenhum pangaré com um par de chinelo como eu vai entender, mesmo que eu seja abduzido. Não consegui entender como o Wash conseguiu botar aspas no modal, mesmo assim eu vi no meio do caminho o JSON, e o Google disse que o JSON é um texto no formato { "texto": "qualquer coisa"}. Isso é a única coisa que era familiar, o resto é o tal do mistério que o padre sempre fala. E assim, eu criei o seguinte código, que, graças a Santa Teresa, funciona! <script> vetor = {'texto':'meu nome é "Joãoponês"'}; function definevar(icoisa) { vetor = {'texto': icoisa.value };modal();alert(icoisa.value);} function modal() { ddiv.innerHTML=vetor.texto; ddiv.style.display="block";} function testePHP(id) { ddiv.innerHTML=id; ddiv.style.display="block";} </script> <style> .modal {display:none; position: absolute; left:150; top:150; border: 1px solid;} </style> <div id=ddiv class=modal onclick=ddiv.style.display="none"></div> <input type=submit onclick=modal() value=Modal><br><br> Digite qualquer coisa:<input id=icoisa onchange=definevar(icoisa)> <?php $mensagem = "Meu nome é 'Joãoponês'"; echo "<br><br><br><li onclick='testePHP($mensagem)'>Isso não funciona!</li><br>"; ?>
-
No meu tempo, a tabela diário era onde a gente armazena as transações de compra, venda, tipo assim Doc 10.111 15/05/2022 410 Refeição 17,39 Padaria Flor do Trigo quibe, pão e café Doc 10.112 15/05/2022 107 Bradesco 17,39 Padaria Flor do Trigo quibe, pão e café Isso é coisa do século XV. E hoje, como o pessoal registra a compra de um quibe na padaria?
-
Eu não tenho mais a rotina do <select>, joguei fora, troquei pelo modal, mesmo sabendo que o meu modal não suporta aspas, mas eu lembro que o PHP 7 considerava como nulo, quando eu não selecionava nada, e assim o $debito ou o $credito ficava vazio. Lá na frente, eu pedia para fazer um insert to, mesmo sabendo que eu iria enfrentar problema lá no MySQL, ou seja, o MySQL simplesmente se recusaria a fazer tal tarefa. O nome disso é gambiarra. Mas o PHP 8 não deixa mais eu fazer isso! Mas eu gostei dessa dica de colocar aspas numa variável numérica, mas a minha intenção era fazer um lançamento a debito, outro lançamento a credito, não sei o que vai acontecer se eu colocar as aspas. Preciso testar. Mas, falando em debito e credito, eu acho que eu sou um dos poucos que ainda pensa na tecnologia das partidas dobradas do século XV, hoje tudo é mais moderno e eficiente, eu acho. Acredito que todo mundo trabalha com apenas um campo, transação, e o antigo débito e crédito ficaria resumido no sinal da transação. Enfim, eu acho que estou desatualizado. Você tem aí um esquema para a tabela diário para os dias atuais? O meu é assim: data, conta, debito-valor, credito-valor, historico, isso é lá do século XV. Eu não tenho a menor ideia de como fazer a tela de entrada, caso os campos debito e credito fossem apenas um só campo.
-
function dec($num) {if (empty($num)) {$fmt="";} else {$fmt = number_format($num,2,',','.'); return $fmt;} } a versão anterior era: function dec($num) {$fmt=number_format($num,2,",","."); return $fmt;} o PHP 8 diz que a função está "deprecated", quando $num está vazio. ------------------- <option>Selecionar</option>, eu tive que tirar a palavra Selecionar que usava como cabeçalho da lista. Quando eu não seleciono nada, o PHP 8 considera 'selecionar' como uma variável não definida num código adiante para ver o que foi selecionado. ------------------- if (empty($credito)){ $sql="insert into tbdiario (dia,conta,debito,hist) Values ('$diar',$debito,$valor,'$hist')"; } else { $sql="insert into tbdiario (dia,conta,credito,hist) Values ('$diar',$credito,$valor,'$hist')"; } $query=$mysqli->query($sql);} Essa é a nova versão que estou usando no PHP 8. Na versão 7, eu mandava executar as duas rotinas, deixando a critério do MySQL executar ou não a tarefa. Para a minha surpresa, a versão 8 me barrou, jogando para o espaço o meu conceito de que PHP é PHP e MySQL é MySQL.
-
Hoje eu fiz manutenção nos meus códigos com a atualização do PHP 8, ele não aceita valores nulos em funções de formatação, ele questiona a palavra "Selecionar" no elemento <select> e também não aceita mais eu mandar campos com valores nulos no MySQL. Tive que fazer algumas "manobras" para contornar as novas restrições do PHP 8. Estou começando a me adaptar às novas regras.
-
Ontem eu fiquei sabendo que o meu PHP era bem antigo, quando disse que não estava conseguindo executar o tutorial do Wash, eu fiquei apavorado. O Wash foi bastante gentil, ele pediu o número da minha versão do PHP e disse que iria reescrever o tutorial. E eu disse que não precisava, que eu iria me virar sozinho. Isso foi um drama que durou cinco horas. Eu imaginava que bastava atualizar o Wampserver, eu peguei a versão mais recente. Mas eu não consegui instalar, o instalador reclamou que o meu Wampserver era tão velho que eu precisava primeiro instalar a versão intermediária. Depois de duas atualizações consegui chegar no Wampserver 3.2.8 com o phpmyadmin5.2.0, mas o máximo que consegui atualizar o PHP foi até a versão 7.49, ele também não é capaz de executar o tutorial do Wash. O Google disse que é possível atualizar o PHP, mas isso é só para gente bastante profissional, o que não é o meu caso. Eu apanhei muito, mas consegui instalar o novo PHP, o chato é que o Apache reclamou bastante e não quis botar o Wampserver no ar. Depois de muita ajuda do Google para conversar com o Apache, finalmente consegui testar o tutorial do Wash, eu me livrei da primeira mensagem de erro, agora tenho que enfrentar um novo desafio, o de que não instalei o banco de dados. Isso eu preciso aprender mesmo. Tudo parecia em ordem, mas quando tentei conectar o celular, recebi a mensagem de que não havia um túnel pelo ngrok. Isso é bem ilógico. Como o meu notebook encontrou o túnel, mas o celular não? Tirei o WiFi do notebook, e pedi para o notebook usar a conexão do celular, e ele encontrou o túnel! Que porcaria! E o Google mostrou que havia um monte de gente na mesma situação que eu, sem saber o que fazer. Eu passei dois anos estudando o PHP só para ter o prazer de ter um celular que tem um banco de dados em tempo real, onde eu posso até acrescentar novos registros, seja no bar da esquina ou dentro do ônibus, e tudo isso foi para o saco. Isso dói muito. O PHP é muito bacana, mas ele precisa de mais recursos para apresentar um serviço melhor, eu fui forçado a estudar HTML, CSS e JavaScript, eu consegui até instalar um modal na rotina do lançamento contábil. Finalmente, o Google me apresentou um vídeo bem idiota de como recuperar o canal do ngrok. Eu detestei a solução, mas eram dois anos da minha vida e o meu celular que estavam em jogo. Não tive outra escolha, e tive que me submeter. Fui até o portal do ngrok, cadastrei uma nova conta, dessa vez usei a conta da Microsoft, e assim consegui um novo código de instalação para configurar o ngrok que nem precisei baixar. Com o novo código eu consegui o endereço do canal, e com ele o meu celular conseguiu enxergar o meu notebook dentro da internet. A minha tese é que o probema é financeiro, faz dois anos que usei o antigo túnel com a conta da Google sem pagar nada para o ngrok. Eu fico imaginando o dia que o Wash começar a cobrar pelo tutorial. Esse mundo está perdido!
-
O tutorial do Wash
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
PHP 7.3.21. Mas não precisa adaptar nada aí, vou tentar atualizar o Wampserver por aqui. Por enquanto, obrigado pela atenção. ------------------------------- atualizando: Consegui atualizar para a versão 8.1.6, e a mensagem de erro no módulo do jason não aparece mais. Agora ele reclama que não encontrou o msqli, isso já é mais a minha praia, e vou tentar consertar. -
O tutorial do Wash
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Olá, Iowys, eu também sou leigo com o Windows 11, mas hoje aprendi a criar um subdiretório na pasta wamp64/www/frank, eu chamei de lab. Copiei e colei na pasta lab todas as pastas e arquivos que veio do tutorial do Wash. O meu grande erro é que eu tentei abrir o index.html pelo gerenciador de arquivos com o botão direito do mouse, ele abriu o navegador, mas ele não respondia ao clique do botão. Depois que eu percebi a tremenda mancada que eu fiz, eu fui no navegador, e digitei localhost/frank/lab/index.html, e surgiu a seguinte mensagem: Parse error: syntax error, unexpected '|', expecting variable (T_VARIABLE) in C:\wamp64\www\frank\lab\api\helpers\httpResponse.php on line 7 Eu procurei o arquivo, e na linha 7, encontrei o seguinte código: function jsonResponse(string|array $data = null, int $code = 200): void Aqui eu não sei mais o que fazer pois eu não sei nada de json. O problema é que eu preciso do modal no celular para ontem, e assim vou ter que me contentar com a gambiarra que eu criei, mesmo sabendo que ele não suporta aspas. -
Eu comentei no fórum que o meu código que simula o modal no PHP não é capaz de suportar um banco de dados que tenha aspas simples ou duplo em algum de seus registros. O Wash afirmou que é possível trabalhar com um modal e um banco de dados que tenha aspas, e assim ele mandou um link, esse daqui: GitHub - w-studies/date-from-database-to-js Lá tem a opção de baixar o código para o notebook. Ele vai direto na pasta Downloads. Eu pedi para o Windows 11 descompactar e mandar uma cópia para o diretório wamp64 > www> frank. Dentro da pasta encontrei um index.html, cliquei nele, e o navegador mostrou a tela com o botão Events. Apertei nele, e nada aconteceu. Pedi para o Windows 11 abrir o index.html com o Notepad++ e lá encontrei o código <a href='events'>. Pedi ajuda para o Google, mas não consegui achar a resposta. Então, eu tive que improvisar. Eu encontrei uma subpasta chamada views, e dentro dele encontrei um arquivo chamado events.html, e mandei para a mesma pasta onde estava o index.html - apertei o botão Events, e nada aconteceu. A única solução que existe para um programador despreparado como eu é chorar. Mesmo assim, eu peguei o arquivo index.html e o events.html e desloquei para a pasta wamp64 > www > frank, agora sim o botão Events funcionou! Conclusão: o meu sistema de tentativa e erro é muito bom, quando funciona, mas ao invés de resolver um problema, acabei encontrando dois: 1) <a href='events'> é a mesma coisa que <a href='events.html'>? 2) é possível executar um código php ou html dentro do subdiretório do meu diretório principal? A minha estimativa de criar um código modal que suporte aspas era 2024, vou ter que prorrogar para 2030.
-
Nos códigos anteriores, eu usei bastante o JavaScript para pegar uma variável do PHP e colocar no elemento <div> do HTML. Mas eu apanhei muito, e agora pedi para o PHP colocar a variável na <div> sem a intervenção do JavaScript. Pensei que isso iria facilitar a minha vida, mas eu me enganei. O problema é montar a variável e não como colocar no HTML. Aqui apresento dois códigos, um bem básico que monta o plano de contas na unha e a segunda usando o motor mysqli do PHP. Mas nenhum dos dois funciona se o plano de contas tiver aspas simples ou dupla dentro da descrição. Eu ainda não sei como resolver esse abacaxi, mesmo assim eu adorei o visual tanto no notebook bem como no celular, ficou muito mais prático. _2.php plano de contas, versão básica <meta name="viewport" content="width=device-width, initial-scale=1"> <style> li {list-style-type: none;} form {margin: 0;} .modal2 { display: none; position: absolute; z-index: 1; padding-top: 100px; left: 0; top:0; width: 100%; height: 50%; overflow: auto; } .modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;} </style> <script> var lçto = ""; var descrição = ""; function lançar(id,jd) { lçto=id; descrição=jd; divmodal2.style.display="block";}; function registro(id,jd) { divmodal2.style.display="none"; eleconta = document.getElementById(lçto); eledescrição = document.getElementById(descrição); eleconta.value=id; eledescrição.innerHTML=jd;} </script> <?php // tela de registro contábil echo "<table><tr><th><th><th></tr>" . "<tr><td>Débito<td><input id=idebito onclick=lançar(id,'lidebito') size=2>" . "<td><li id=lidebito></li></tr>" . "<tr><td>Crédito<td><input id=icredito onclick=lançar(id,'licredito') size=2>" . "<td><li id=licredito></li></tr>" . "<tr><td>Histórico<td><td>Exemplo de lançamento</tr>" . "<tr><td>Valor<td>100,00</tr></table>"; // tela do plano de contas dentro do modal $plano="<li onclick=registro(100,'Ativo')>100 Ativo</li>" . "<li onclick=registro(200,'Passivo')>200 Passivo</li>" . "<li onclick=registro(300,'Receita')>300 Receita</li>" . "<li onclick=registro(400,'Despesa')>400 Despesa</i>"; echo "<div id=divmodal2 class=modal2><div class=modal2-content>$plano</div></div>"; ?> _1.php plano de contas usando o motor mysqli do PHP <meta name="viewport" content="width=device-width, initial-scale=1"> <style> li {list-style-type: none;} form {margin: 0;} .modal2 { display: none; position: absolute; z-index: 1; padding-top: 100px; left: 0; top:0; width: 100%; height: 50%; overflow: auto; } .modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;} </style> <script> var lçto = ""; var descrição = ""; function lançar(id,jd) { lçto=id; descrição=jd; divmodal2.style.display="block";}; function registro(id,jd) { divmodal2.style.display="none"; eleconta = document.getElementById(lçto); eledescrição = document.getElementById(descrição); eleconta.value=id; eledescrição.innerHTML=jd;} </script> <?php // tela de registro contábil echo "<table><tr><th><th><th></tr>" . "<tr><td>Débito<td><input id=idebito onclick=lançar(id,'lidebito') size=2>" . "<td><li id=lidebito></li></tr>" . "<tr><td>Crédito<td><input id=icredito onclick=lançar(id,'licredito') size=2>" . "<td><li id=licredito></li></tr>" . "<tr><td>Histórico<td><td>Exemplo de lançamento</tr>" . "<tr><td>Valor<td>100,00</tr></table>"; // tela do plano de contas dentro do modal $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select conta,descricao from tbconta"); $plano=""; while ($linha=$query->fetch_assoc()) { $conta = $linha['conta']; $descrição = $linha['descricao']; $java='registro('.$conta.',"'.$descrição.'")'; $plano = $plano."<li onclick='$java'>$conta $descrição</li>"; } echo "<div id=divmodal2 class=modal2><div class=modal2-content>$plano</div></div>"; mysqli_close($mysqli); ?>
-
Problema com o modal no PHP
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Iowys, o correto é sempre separar responsabilidades. Mas eu ainda não sei distribuir responsabilidades, e isso explica a promiscuidade digital dos meus códigos. O Wash tem apresentado vários códigos, eu sei fazer o download e descompactar, mas como adaptar tudo aquilo no meu notebook, eu ainda não tenho a menor ideia. Por enquanto, eu coloco tudo no "c:/wamp64/www/frank", e é óbvio que o código não funciona. Isso porque ainda não sei identificar quem é o CSS e onde posso guardar, bem como outras ferramentas. -
Problema com o modal no PHP
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Para você sentir o meu drama, a verdade é que não estou conseguindo codificar sequer uma linha de HTML. Veja só: <li id=L1 onclick="L1.innerHTML='Teste 1 ok'">Teste 1</li><br> <?php echo "<li id=L2 onclick='L2.innerHTML=\" Teste 2 ok\"'>Teste 2</li><br>"; $mensagem = "Teste 3 ok"; echo "<li id=L3 onclick='L3.innerHTML=\"$mensagem\"'>Teste 3</li><br>"; $java = 'L4.innerHTML="Teste 4 ok"'; echo "<li id=L4 onclick='$java'>Teste 4</li><br>"; $mensagem = "Teste 5 ok"; $java = 'L5.innerHTML="'.$mensagem.'"'; echo "<li id=L5 onclick='$java'>Teste 5</li><br>"; $mensagem = "Meu nome é 'Joãoponês'"; $java = 'L6.innerHTML="'.$mensagem.'"'; echo "<li id=L6 onclick='$java'>Teste 6</li><br>"; // não funciona, apesar de ter a mesma sintaxe do teste 5 ?> -
Hoje estava pensando em montar o código para o plano de contas aparecer no modal do lançamento contábil para selecionar as contas de débito e crédito, mas precisei fazer compras. De volta no apartamento, aproveitei o cupom para fazer o lançamento no sistema. Na hora de puxar o código do fornecedor, surgiu uma tela bem bagunçada e ele simplesmente travou. Eu fiquei mordido, eu tinha feito vários testes, não era para ele falhar. Olhei o painel de inspeção do navegador e vi que o erro não foi meu, mas sim do registro no banco de dados, o nome do contato tinha aspas Quitanda "Aqui é Mais Barato", e logo percebi que não posso usar o JavaScript como meio de transporte entre o PHP e o HTML. Perdi duas semanas da minha vida fazendo um código inútil. Para não perder outras próximas semanas, pedi para o MySQL auditar a tabela de pessoa e produto e substituir as aspas duplas ou simples por um acento agudo. Esse procedimento não é correto, mas é a única gambiarra que imaginei na hora do desespero. Mas, no fundo, o erro foi meu mesmo. Não há nenhum motivo para eu pedir para o PHP mandar o conteúdo de uma variável para o JavaScript escrever no HTML, o próprio PHP já é uma fábrica de HTML. Com isso em mente vou fazer o próximo modal do plano de contas sem a ajuda do JavaScript, só o necessário, do tipo ligar e desligar o modal.
-
Como escrever "alert('olá mundo')" no PHP?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Finalmente, eu inclui um hiperlink dentro do modal, eu não sei explicar porque ele funciona. Se você estudar a última linha da montagem do $modal, notará que eu fiz uma bela gambiarra, ao invés de eu escrever ."<tr><td height=40><td><li onclick='testar($codprod)'><font color=red>testar</li></tr></table>"; eu simplesmente omiti as aspas simples assim: ."<tr><td height=40><td><li onclick=testar($codprod)><font color=red>testar</li></tr></table>"; Não é fácil trabalhar com o modal no PHP! <meta name="viewport" content="width=device-width, initial-scale=1"> <script> function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";} function desligamodal2() {divmodal2.style.display = "none";} function testar(id) {alert("Deu certo "+id);} </script> <style> form {margin: 0;} .modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170; width: 100%; height: 50%; overflow: auto; } .modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;} </style> <?php $mysqli = new mysqli("localhost","root","","diario"); $query = $mysqli->query("select * from tbprod"); $linha = $query->fetch_assoc(); echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>"; $codprod=$linha['codprod']; $modal = "<table><tr><th><th></tr>" ."<tr><td align=right>Código<td><b>$codprod</tr>" ."<tr><td align=right>Produto<td><b>".$linha['prod']."</tr>" ."<tr><td align=right>Unidade<td><b>".$linha['un']."</tr>" ."<tr><td align=right>Custo<td><b>".str_replace(".",",",$linha['custo'])."</tr>" ."<tr><td height=40><td><li onclick=testar($codprod)><font color=red>testar</li></tr></table>"; $java = 'modal(" '.$modal.' ")'; echo "<li onclick='$java'>Teste</li>"; mysqli_close($mysqli); ?> Agora que tudo deu certo no meu rascunho, espero que tudo dê certo lá no meu produto.php. -
Como escrever "alert('olá mundo')" no PHP?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Nessa listagem eu coloco o primeiro registro da tabela tbprod no modal. <meta name="viewport" content="width=device-width, initial-scale=1"> <script> function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";} function desligamodal2() {divmodal2.style.display = "none";} </script> <style> form {margin: 0;} .modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170; width: 100%; height: 50%; overflow: auto; } .modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;} </style> <?php $mysqli = new mysqli("localhost","root","","diario"); $query = $mysqli->query("select * from tbprod"); $linha = $query->fetch_assoc(); echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>"; $codprod=$linha['codprod']; $modal = "<table><tr><th><th></tr>" ."<tr><td align=right>Código<td><b>$codprod</tr>" ."<tr><td align=right>Produto<td><b>".$linha['prod']."</tr>" ."<tr><td align=right>Unidade<td><b>".$linha['un']."</tr>" ."<tr><td align=right>Custo<td><b>".str_replace(".",",",$linha['custo'])."</tr>"; $java = 'modal(" '.$modal.' ")'; echo "<li onclick='$java'>Teste</li>"; mysqli_close($mysqli); ?> -
Como escrever "alert('olá mundo')" no PHP?
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
A listagem completa do meu código é esse daqui, caso você queira testar. Eu consegui recuperar o modal no meu arquivo pessoa.php (graças a Deus), mas não estou conseguindo instalar em produto.php, assim estou começando do zero (de novo) até conseguir o modal na listagem de produtos. _1.php *** nesse pequeno aplicativo eu tento usar o modal no PHP *** <meta name="viewport" content="width=device-width, initial-scale=1"> <script> function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";} function desligamodal2() {divmodal2.style.display = "none";} </script> <style> form {margin: 0;} .modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170; width: 100%; height: 50%; overflow: auto; } .modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;} </style> <?php echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>"; $modal = "olá mundo!"; $java = 'modal(" '.$modal.' ")'; echo "<li onclick='$java'>Teste</li>"; ?> Nesse código, eu tento mandar uma tabela para o modal, baseado no exemplo anterior. <meta name="viewport" content="width=device-width, initial-scale=1"> <script> function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";} function desligamodal2() {divmodal2.style.display = "none";} </script> <style> form {margin: 0;} .modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170; width: 100%; height: 50%; overflow: auto; } .modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;} </style> <?php echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>"; $modal = "<table><tr><th><th></tr>" ."<tr><td align=right>Código<td><b>666</tr>" ."<tr><td align=right>Produto<td><b>Jabuticaba</tr>"; $java = 'modal(" '.$modal.' ")'; echo "<li onclick='$java'>Teste</li>"; ?> -
Como escrever "alert('olá mundo')" no PHP?
uma questão postou Frank K Hosaka Tutoriais & Dicas - PHP
Eu fiz besteira e perdi o meu arquivo pessoa.php. Para o meu sistema não ficar sem pé e sem cabeça eu puxei o meu antigo arquivo no OneDrive, e com isso eu perdi dois dias de trabalho. Eu estava implantando o modal no arquivo. Tive que fazer tudo de novo, e de novo eu tive os mesmos erros, mas eu não lembrava de como consegui resolver o problema. A única coisa que veio na minha mente foi responder a pergunta como escrever "alert('olá mundo')" no PHP. Eu tentei de várias maneiras, até que cheguei nessa solução: <?php $modal = ... // cadastro da pessoa selecionada $java = 'alert("ola mundo")'; $pessoa = "<li onclick='$java'>$pessoa</li>"; ?> Essa fórmula eu consegui com a ajuda de várias tentativas e com a inspeção do navegador. Geralmente, o código PHP sempre usa aspas duplas para definir uma variável. O problema é que o HTML também usa bastante aspas duplas. Então, eu pedi para o PHP usar aspas simples, e com isso eu perco várias facilidades como escrever a variável dentro da cadeia de caracteres. Para resolver o problema do modal, eu acompanhei a minha solução genérica para chegar nessa solução particular: <?php $modal =... // cadastro da pessoa selecionada $java = 'modal(" '.$modal.' ")'; $pessoa = "<li onclick='$java'>$pessoa</li>"; ?> a minha função modal e o CSS correpondente é assim <script> function modal(id) {divmodal3.innerHTML=id;divmodal2.style.display="block";} function desligamodal2() {divmodal2.style.display = "none";} </script> <style> form {margin: 0;} .modal2 { display: none; position: fixed; z-index: 1; padding-top: 100px; left: 0; top:170; width: 100%; height: 50%; overflow: auto; } .modal2-content { background-color: #fefefe; margin: auto; padding: 10px; border: 1px solid #888; width: 80%;} </style> para eles funcionarem, eu preciso do seguinte <div> <?php echo "<div id='divmodal2' class='modal2' onclick='desligamodal2()'><div class='modal2-content' id='divmodal3'></div></div>"; ?> Você tem que tomar o cuidado do <div> não ficar perdido dentro de um <table>, aí nada vai funcionar. -
O meu primeiro programa "front-end"
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Obrigado Wash pela sua sugestão. Vou experimentar o código nessa semana. -
O meu primeiro programa "front-end"
pergunta respondeu ao Frank K Hosaka de Frank K Hosaka em Tutoriais & Dicas - PHP
Na terceira versão, eu mexi o máximo que pude no CSS .modal, quase que eu consegui botar a caixa do input em cima do elemento que foi clicado. Pelo menos, deixei mais prático, o input recebe o foco e sempre limpa. <style> form {margin: 0;} .modal { display: none; position: relative; z-index: 1; padding-top: 0px; left: 0; top:0; width: 29%; height: 20%; overflow: absolute; } .modal-content { background-color: #fefefe; margin: auto; padding: 0px; border: 1px solid #888; width: 80%;} </style> <script> function verli(jd) { inpli.value=jd; divmodal.style.display="block"; inpmudar.focus();} function mudar() { var element = document.getElementById(inpli.value); element.innerHTML=inpmudar.value; inpmudar.value=""; divmodal.style.display="none";} </script> <li id="li1" onclick="verli(id)">A</li> <li id="li2" onclick="verli(id)">vaca</li> <li id="li3" onclick="verli(id)">foi</li> <li id="li4" onclick="verli(id)">para</li> <li id="li5" onclick="verli(id)">o</li> <li id="li6" onclick="verli(id)">brejo</li> <div id="divmodal" class="modal" > <div class="modal-content"> <form> <input id="inpmudar" onchange="mudar()" autocomplete="off"> <input type="hidden" id="inpli"> </form> </div> </div>