Ir para conteúdo
Fórum Script Brasil

Frank K Hosaka

Membros
  • Total de itens

    1.622
  • Registro em

  • Última visita

Tudo que Frank K Hosaka postou

  1. Valeu, Wash, mas eu não consegui enxergar o 'login-form' da sua dica. Eu improvisei com a ajuda do Google, e cheguei nesse código: astudy.html <meta charset="UTF-8"> <script> async function procurar(pessoa) { var form = new FormData(); form.append("procurar",pessoa); const response=await fetch("astudy.php", {method: "POST", body: form}); const body=await response.text() recdiv.innerHTML=body;} </script> Procurar Pessoa:<input onchange=procurar(value)> <div id=recdiv></div> ------------------------- astudy.php <?php $procurar=$_POST['procurar']; $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbpessoa where pessoa like '%$procurar%' order by pessoa limit 15"); while ($row=$query->fetch_assoc()) { echo $row['pessoa'],"<br>";} Esse código funciona, mas precisava ver como é o 'login-form' que você citou na sua dica. Mais uma vez, obrigado, mesmo.
  2. Achei outra solução no Google, ele usa a notação JSON: astudy.html <meta charset="UTF-8"> <script> async function teste() { data= {mensagem: "olá mundo"} const response=await fetch('astudy.php',{method:'POST',body:JSON.stringify(data)}) const body=await response.text() recdiv.innerHTML=body;} </script> <input type=submit value=Teste onclick=teste()> <div id=recdiv></div> ---------------------------------------- astudy.php <?php $json = file_get_contents("php://input"); // json string echo $json; Apesar de eu ter conseguido essa proeza do HTML conversar com o PHP, ainda não faço a menor ideia de como poderei aproveitar. O meu problema é que eu não sei nada de HTML.
  3. <?php $total_custo_fixo = 9249.24; $devolucao = 1406.48; $imcfat_soma = 31.38; $imcfat_soma_contador = 72; $total_cheque_pre = 8186.20; $total_vendas_varejo = 18118.10; $ponto_de_equilibrio = (($total_custo_fixo - $devolucao) / $imcfat_soma) / $imcfat_soma_contador; echo "$ponto_de_equilibrio"; // formato americano echo number_format($ponto_de_equilibrio,2,".",","); // formato brasileiro. //o resultado deu 3.4712307910205 // (custofixo-devolucao) = 9249.24-1406.48 = 7842.76 // resultado/soma-imcfat = 7842.76 / 31.38 = 249,92 // resultado/soma-contador = 249,92 / 72 = 3.471230791 // não dá para chegar nos 22.000,00 com essa fórmula. // o PHP trabalha com a notação americana, usa o ponto como o ponto decimal. // para transformar o número em notação brasileira, você usa a função format_number, // mas isso só se aplica ao resultado, e nunca no meio do cálculo. // supondo que o resultado deu 22000.00 para colocar no formato brasileiro, eu uso // number_format($resultado,2,',','.') - ele não altera nenhum cálculo, // mas só apresenta um número em outro formato // o problema está na equação. Você passou uma equação, e na hora de passar as variáveis // estão o cheque pre e vendas varejo que // não foram contemplados na fórmula
  4. Esses são os códigos astudy.html e astudy.php: astudy.html <script> async function teste() { const mensagem=1; const response=await fetch('astudy.php',{method:'POST',body:mensagem}) const body=await response.text() recdiv.innerHTML=body;} </script> <input type=submit value=Teste onclick=teste()> <div id=recdiv></div> ------------------------------------------------ astudy.php <?php echo '<pre>$_POST: '; print_r($_POST); echo '</pre>';
  5. Para ver se estamos falando a mesma coisa, passe os valores das variáveis (A) $total_custo_fixo (B) $devolucao (C) $imcfat_soma (D) $imc_fat_soma_contador São quatro variáveis. Se você passar o valor de todas elas, aí vai ser mais fácil calcular o $ponto_de_equilibrio, supondo que a equação seja essa: Pe=((A-B)/C)/D
  6. Eu contornaria o problema assim: if ($count3==0) {$kmporlitro="indefinido";} else {$kmporlitro=$count4/$count3;} Se não der certo, mudaria para: if (empty($count3)) {$kmporlitro="indefinido";} else {$kmporlitro=$count4/$count3;}
  7. Eu imaginei um cardápio com cinco produtos, o usuário escolhe o que e quanto ele quer. Assim que ele define a escolha, a rotina pega tudo o que foi definido pelo usuário e manda para o banco de dados. Para resolver esse tipo de problema, eu usei uma matriz. E a solução ficou bacana, olha só: <script> var matriz = [[0,0,0],[0,0,0],[0,0,0],[0,0,0],[0,0,0]]; function calc(i,codprod,qt,custo,sub){ qt=qt.replace(",","."); matriz[i][0]=codprod; matriz[i][1]=qt; matriz[i][2]=qt*custo; sub.innerHTML=matriz[i][2].toLocaleString('pt-br',{minimumFractionDigits:2,maximumFractionDigits:2}); total=0; for (j=0;j<=4;j++) {total+=matriz[j][2];} total=total.toLocaleString('pt-br',{minimumFractionDigits:2,maximumFractionDigits:2}); atotal.innerHTML=total;} function executar() { inpg.name='exec'; inpg.value=JSON.stringify(matriz); frmg.submit();} </script> <form id=frmg method=post><input type=hidden id=inpg></form> <?php if (isset($_POST['exec'])){ $matriz=json_decode($_POST['exec']); $soma=0; for ($i=0;$i<=4;$i++) { $soma+=$matriz[$i][2]; if ($matriz[$i][0]!=0){ $codprod=$matriz[$i][0]; $qt=$matriz[$i][1]; echo "sql='insert into tbpedido (codprod,qt) values($codprod,$qt)'<br>";}} echo "Total do pedido $soma"; exit;} function dec($num) {if (empty($num)) {$fmt="";} else {$fmt = number_format($num,2,',','.'); return $fmt;}} $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbprod order by prod limit 5"); echo "<table><tr><th>Qtd<th>Produto<th>Preço<th>Subtotal"; for ($i=0;$i<=4;$i++) { $row=$query->fetch_assoc(); $codprod=$row['codprod']; $prod=$row['prod']; $custo=$row['custo'];$custod=dec($custo); $id="inp".$i; $sub="as".$i; echo "<tr><td><input id=$id size=1 onchange=calc($i,$codprod,value,$custo,$sub)>" ."<td>$prod<td align=right>$custod<td align=right><a id=$sub></a>";} echo "<tr><td><td><input type=submit value=Executar onclick=executar()><td><td align=right><b><a id=atotal></a></table>";
  8. Que coisa bacana! Eu não sabia disso, mas o problema é que eu preciso de uma variável que sobreviva na atualização do navegador. Nesse caso, todo mundo vai embora, menos o $_SESSION.
  9. O que segue é um péssimo exemplo de programação, mas ele funciona, e dei o nome de astudy.php <script> var k=0; function tab(n) { var t=""; for (var i=1;i<=10;i++) {t+= n + " x " + i + " = " + (n * i) + "<br>";}; k++;t+="tentativa "+k; tabdiv.innerHTML=t;} </script> Tabuada do <input id=inptab onchange=tab(value)> <div id=tabdiv></div> Note que não tem nada de PHP nesse código, mas ontem eu pastei para conseguir uma variável global no mundo do PHP. No código acima, a variável k é uma variável global no mundo do JavaScript, pois ele foi definido antes de todas as funções. Para conseguir um negócio desses no PHP, eu precisei usar o recurso $_SESSION['k']. Esse programa só funciona no terminal do usuário, mas eu não tenho credencial para afirmar que isso é um programa "front end". O meu desafio é montar um orçamento e depois do usuário ter informado quanto ele quer de cada item, o PHP recolhe tudo para guardar no banco de dados. No momento, a limitação do meu código está restrito a recolher apenas um registro e não vários.
  10. Ontem o Iowys fez um tutorial de como criar um documento HTML nesse endereço: Copiar o código dele e colar no notebook é bem fácil, o problema é entender. O tutorial funciona! Ele tenta coletar o máximo de informações do usuário para depois continuar o serviço. O meu estilo é improvisado, ele só consegue pegar uma informação do usuário de cada vez. E isso o Iowys faz questão de criticar, e ele está certo. No tutorial dele, eu vi o elemento <head>, eu pensei que ele vinha depois dos elementos <meta> e <title>. Eu consertei o meu arquivo menu.php baseado no cabeçalho do HTML do Iowys, mas eu continuo recebendo a advertência do navegador do tipo 'content-type' header charset value should be 'utf-8'. Eu desconfio que não basta colocar o <meta charset="UTF-8"> na página do HTML para resolver o problema. Eu preciso aprender a legalizar o uso do arquivo http://localhost/frank/jquery-1.12.4.js dentro do meu código menu.php, eu uso para botar um calendário dentro do registro contábil. Ou seja, eu ainda estou bem longe de criar um documento HTML responsável. No YouTube, o professor Guanabara sempre batia na mesma tecla, estude HTML, CSS, JavaScript para depois usar o PHP. Estou fazendo o caminho inverso, tudo porque eu queria ver o banco de dados do MySQL dentro do celular, e isso foi possível graças ao WampServer e o ngrok, mas eu não tenho a menor ideia de como mexer no Apache, e também não sei mexer no modem da Claro, enfim consegui apenas criar um brinquedo que funciona para mim, só contando com a ajuda do PHP. Mas eu preciso reconhecer o trabalho do Iowys. Eu preciso aprender a separar o que é HTML e o qué o PHP, mas isso vai demorar bastante. No momento, eu aprendi ontem onde colocar o elemento <head>. Veja só como ficou o cabeçalho do menu.php <?php session_start();?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>projeto php</title> Isso é basicamente o xerox do tutorial do Iowys, só que no código original do Iowys não tem esse negócio de session_start. Eu ainda não sei onde eu posso colocar essa geringonça.
  11. O código que segue é pura gambiarra. Eu tenho um pedido de compra que tem 300 produtos. Eu acho uma besteira colocar todos os produtos na tela do celular, ainda mais que eu ainda não sei separar o mundo do servidor e o mundo do cliente. Então eu decidi limitar apenas 15 produtos, o tempo de resposta ficou bem melhor. Para avançar 15 produtos de cada vez, isso foi fácil. O útimo item da lista eu chamei de indicador. O problema é quando o usuário quiser voltar na página anterior. A solução que eu encontrei é bem besta, mas funciona. Eu uso o mesmo indicador, mas peço para o MySQL fazer uma nova consulta baseado no indicador, fazendo uma lista decrescente de produtos. Peço para o PHP contar 29 registros, e utilizar o vigésimo nono como o novo indicador. A solução é bem besta, mas eu não tenho a menor ideia de como ir até o 29o. registro sem ser contando na unha. A seguir a listagem da minha gambiarra: astudy2.php -------------- <script> function voltar(indicador) {inpg.name="voltar";inpg.value=indicador;frmg.submit()} function avancar(indicador) {inpg.name="avancar";inpg.value=indicador;frmg.submit()} function topo() {inpg.name="topo";frmg.submit()} </script> <form id=frmg method=post><input id=inpg type=hidden></form> <?php $mysqli=new mysqli("localhost","root","","diario"); if (isset($_POST['topo'])){$codp=24007;$indicador="";} if (isset($_POST['avancar'])){$codp=24007;$indicador=$_POST['avancar'];} else {$codp=24007;$indicador="";} if (isset($_POST['voltar'])){ $codp=24007; $indicador=$_POST['voltar']; $query=$mysqli->query("select * from vw_compra where codp=$codp and prod<='$indicador' order by prod desc"); for ($i=1;$i<=29;$i++) {$row=$query->fetch_assoc();} $indicador=$row['prod']; } $query=$mysqli->query("select * from vw_compra where codp=$codp and prod>='$indicador' order by prod limit 15"); echo "<table><tr><th><a onclick=voltar(compradiv.innerHTML)>Codigo ^</a><th><a onclick=avancar(compradiv.innerHTML)>Descriçaõ v</a>"; while ($row=$query->fetch_assoc()) { $codprod = $row['codprod']; $prod = $row['prod']; echo "<tr><td>$codprod<td>$prod";} echo "<tr><td><td><b><a onclick=topo()>Ir para o topo</a></table>"; echo "<br>Indicador atual:<div id=compradiv>$prod</div>";
  12. Valeu pelo código, o seu código é 10! Mas eu não entendo nada de CSS e JavasCript. O problema é que eu tenho uma tabela de 300 produtos e um celular que só cabe 15 produtos. A sua solução é melhor porque você pede para o usuário preencher o pedido e depois enviar o pedido, e a minha solução força o servidor trabalhar bem mais, ele tem que atualizar a tela toda vez que o usuário entra com a quantidade de um item. Por outro lado, o seu código traz uma informação valiosa além da responsabilidade da codificação, os <metas> que você colocou no cabeçalho funcionam. Assim, tomo a liberdade de perguntar: porque o lang é "eng" e não "Pt-br"? Mais uma vez, estou grato pela sua aula.
  13. Estou trabalhando num pedido de compra que já tem vários itens, só falta definir a quantidade. Como a lista é enorme, e o celular é pequeno, pensei em criar um <input> do lado esquerdo do item escolhido. Eu gosto do PHP porque dá para fazer um monte de gambiarra. Veja o que eu fiz: <?php $verdura=["berinjela"=>0,"beterrada"=>2,"batata"=>0]; echo "<table><tr><th>Qtd<th>Verdura"; $i=0; foreach ($verdura as $v=>$q) { $i++; $id="inp".$i; $qtd=$q; if ($qtd==0) {$qtd="<input type=hidden id=$id size=1>";} else {$qtd="$qtd<input type=hidden id=$id size=1>";} $ve="<a onclick=$id.type=text>$v</a>"; echo "<tr><td>$qtd<td>$ve";} echo "</table>";
  14. Na tela do Assistente de Foco encontrei a informação de que as notificações que você não viu vai para o centro de notificações, mas a caixa de busca de configurações diz que o centro de notificações mencionado no Assistente de Foco não existe. Se eu fosse você iria pedir o dinheiro de volta.
  15. Eu contei na unha e deu 36 valores diferentes de zero. <?php $arr[0]= [1, 0, 2, 0, 4, 0, 5, 3 ,0 ,0]; $arr[1]= [0, 0, 3, 0, 0, 0, 0, 6, 0, 7]; $arr[2]= [0, 8, 0, 0, 2, 0, 1, 0, 0, 0]; $arr[3]= [2, 0, 0, 0, 0, 8, 0, 0, 0, 0]; $arr[4]= [0, 3, 3, 9, 2, 0, 0, 1, 0, 5]; $arr[5]= [0, 7, 2, 0, 0, 0, 0, 0, 0, 2]; $arr[6]= [0, 0, 0, 4, 0, 5, 7, 3, 0, 0]; $arr[7]= [0, 9, 1, 0, 6, 0, 0, 0, 2, 0]; $arr[8]= [0, 1, 0, 4, 0, 0, 8, 0, 0, 0]; $arr[9]= [6, 0, 0, 0, 0, 0, 7, 0, 0, 6]; $soma=0; foreach ($arr as $subarr) { foreach ($subarr as $valor) { if ($valor>0) { $soma++; echo "$valor, ";}}} echo "<br>Foram contados $soma valores.";
  16. Ah, já descobri o problema. Todo mouse é capaz de segurar e arrastar qualquer coisa dentro do celular, menos dentro do navegador, seja Chrome seja Samsung Internet. E para ajudar, nenhum dos dois oferece a opção de ativar a barra de rolagem horizontal. Como eu não quero mexer no PHP, vou pedir para o meu irmão baixar Calibrar Touchscreen para ver se ele consegue se entender com o celular dele, dispensando o mouse e o PHP.
  17. Eu tenho tabela de produtos que não cabe na tela do celular, a descrição do produto é enorme, e o preço de venda fica oculta do lado direito do navegador do celular. Eu não queria usar o PHP para fazer o foco deslocar da descrição para o preço de venda. Antes de fazer isso, queria ver algum especialista em mouse no celular: como faço para simular o comando {CTRL+seta para direita} no mouse?
  18. A próxima listagem é mais completa, ele tem duas caixas de input para receber as contas e as descrições: <style> a:link,a:visited {text-decoration:none;} a:hover {text-decoration:underline;color:#f00} a:active {text-decoration:none;} a.azul {color:blue;} .modal { display: none; background-color: lightgray; position: fixed; z-index: 1; left: 30%; top:0%; padding: 10px; width: 65%; height: 95%; overflow:auto;} </style> <script> var lçto=""; var descrição=""; function definir(i,j){lçto=i; descrição=j; divplano.style.display='block';} function procura(i,j){divplano.style.display='none';eleconta=document.getElementById(lçto); eledescrição = document.getElementById(descrição); eleconta.value=i; eledescrição.innerHTML=j;} </script> <table><tr><th><th> <tr><td><label for=inpdebito>Débito<td><input id=inpdebito size=1 onclick=definir(id,"adebito")><td><a id=adebito></a> <tr><td><label for=inpcredito>Crédito<td><input id=inpcredito size=1 onclick=definir(id,"acredito")><td><a id=acredito></a> </table> <?php $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select conta, descricao from tbconta where conta<201"); $contasativo=mysqli_num_rows($query); $cons=$mysqli->query("select conta, descricao from tbconta where conta>=201"); $contaspassivo=mysqli_num_rows($cons); $plano="<table><tr><th><th>"; for ($i=1;$i<=$contaspassivo;$i++){ $row=$query->fetch_assoc();$conta=$row['conta']; $desc=$row['descricao']; $java='procura("'.$conta.'","'.$desc.'")'; $plano=$plano."<tr><td nowrap><a onclick='$java'>$conta $desc</a>"; $linha=$cons->fetch_assoc();$conta=$linha['conta']; $desc=$linha['descricao']; $java='procura("'.$conta.'","'.$desc.'")'; $plano=$plano."<td nowrap><a onclick='$java'>$conta $desc</a>";} $resto=$contasativo-$contaspassivo; for ($i=1;$i<=$resto;$i++){ $row=$query->fetch_assoc();$conta=$row['conta']; $desc=$row['descricao']; $java='procura("'.$conta.'","'.$desc.'")'; $plano=$plano."<tr><td nowrap><a onclick='$java'>$conta $desc</a>";} echo "<div id=divplano class=modal onclick=divplano.style.display='none'>$plano</div>";
  19. O plano de contas nada mais é que um conjunto de contas e a descrição de contas. Hoje fiquei imaginando se é possível fazer em duas colunas, ou seja, o ativo de um lado, o passivo e o resutado do outro lado. No meu caso em particular, montei o código tendo mais contas do lado do ativo do que no passivo. Esse código só funciona se ninguém usar aspas na descrição das contas. <?php include("menu.php"); $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbconta where conta<201"); $contas=mysqli_num_rows($query); $query2=$mysqli->query("select * from tbconta where conta>=201"); $contas2=mysqli_num_rows($query2); $resto=$contas-$contas2; $plano="<table><tr><th><th><th><th>"; for ($i=1;$i<=$contas2;$i++) { $row=$query->fetch_assoc(); $plano=$plano."<tr><td>".$row['conta']."<td>".$row['descricao']; $row2=$query2->fetch_assoc(); $plano=$plano."<td>".$row2['conta']."<td>".$row2['descricao'];} for ($i=1;$i<=$resto;$i++) { $row=$query->fetch_assoc(); $plano=$plano."<tr><td>".$row['conta']."<td>".$row['descricao'];} $plano=$plano."</table>"; echo "<script>pessoadiv.innerHTML='$plano';pessoadiv.style.display='block'</script>";
  20. O código que segue é a solução que eu encontrei para listar 15 pessoas de cada vez, usando como critério o nome, ou endereço, ou telefone, ou CPF, ou algo que foi anotado no campo nota. Claro que existem mais de 15 pessoas que tem o nome de Jair, Luis ou Sérgio, ou que tem o telefone com prefixo 6666, e para ver os próximos 15, eu coloquei o botão continuar. Faz dois anos que estive procurando por essa solução. Demorou, mas eu consegui. O chato é que ele é resultado do método da tentativa e erro, ele não tem nenhum fundamento lógico, pois eu esbarrei no velho problema das aspas. Você pode ver que em algumas linhas eu usei aspas simples, em outras aspas duplas. ELAS NÃO PODEM SER ALTERADAS, senão o programa não vai funcionar. Logo, a solução é uma grande porcaria, é o resultado da minha improvisação. Se existe algum método lógico para listar 15 pessoas de cada vez na linguagem PHP, isso eu não eu sei. O que eu fiz demorou dois anos, jamais vou conseguir o Nobel dos desenvolvedores, mas quem sabe eu consiga o Nobel da improvisação. <?php include("menu.php"); function fsql($campo,$pessoa) {$fsql="select * from tbpessoa where pessoa>='$pessoa' $campo order by pessoa limit 15";return $fsql;}; if (isset($_POST['pessoa'])) { $pessoa=$_POST['pessoa']; $campo=$_POST['campo']; $busca=$_POST['busca']; $escolhido=$_POST['escolhido']; $escolha=$_POST['escolha']; goto inicio;} if (isset($_POST['busca1'])) { $busca=$_POST['busca1']; $tamanho=strlen($busca); for ($i=1;$i<=5;$i++) { if (substr($busca,$tamanho-5,5)=="false"){$busca=substr($busca,0,$tamanho-5);$tamanho=$tamanho-5;} else { $busca=substr($busca,0,$tamanho-4);$tamanho=$tamanho-4;$escolha=$i;} } $pessoa=""; $compl="like '%$busca%'"; switch($escolha) { case 5: $campo="and pessoa $compl";$escolhido="Pessoa";goto inicio; case 4: $campo="and cnpj $compl";$escolhido="CNPJ";goto inicio; case 3: $campo="and end $compl";$escolhido="Endereço";goto inicio; case 2: $campo="and tel $compl";$escolhido="Telefone";goto inicio; case 1: $campo="and nota $compl";$escolhido="Nota";goto inicio;}} $escolha=5; $campo=""; $pessoa=""; $escolhido="Telefone"; $busca=""; inicio: $sql=fsql($campo,$pessoa); $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query($sql); $reg=mysqli_num_rows($query); echo "<table><tr><th>Busca<th align=left>"; echo '<input id=busca1 onchange=inpg.value=value+rpessoa.checked+rcnpj.checked+rend.checked+rtel.checked+rnota.checked;inpg.name="busca1";frmg.submit()>'; echo "<tr><td><td align=left><input type=radio name=op id=rpessoa>Nome <input type=radio name=op id=rcnpj>CNPJ "; echo "<input type=radio name=op id=rend>End <input type=radio name=op id=rtel>Tel <input type=radio name=op id=rnota>Nota"; $busca2=$busca;if ($busca=="") {$busca2="Nenhum";} echo "<tr><td><td><script>busca1.value='$busca2'</script>"; switch($escolha) { case 5: echo "<script>rpessoa.checked=true</script>";goto prossiga; case 4: echo "<script>rcnpj.checked=true</script>";goto prossiga; case 3: echo "<script>rend.checked=true</script>";goto prossiga; case 2: echo "<script>rtel.checked=true</script>";goto prossiga; case 1: echo "<script>rnota.checked=true</script>";goto prossiga;} prossiga: while ($row=$query->fetch_assoc()) { $codp=$row['codp']; $pessoa=$row['pessoa']; $cnpj=$row['cnpj']; $end=$row['end']; $tel=$row['tel']; $nota=$row['nota']; $java='alert("'.$codp.$pessoa.$cnpj.$end.$tel.$nota.'")'; $alerta="<a onclick='$java'>$pessoa</a>"; echo "<tr><td align=right>$codp<td>$alerta";} if ($reg==0) {echo "<br><br>Nenhuma pessoa econtrada com o critério $busca no campo $escolhido";} if ($reg==15) { echo "<tr><td><td><form method=post>"; echo '<input type=hidden name=campo value="'.$campo.'">'; echo "<input type=hidden name=busca value='$busca'>"; echo "<input type=hidden name=escolhido value='$escolhido'>"; echo "<input type=hidden name=pessoa value='$pessoa'>"; echo "<input type=hidden name=escolha value='$escolha'>"; echo "<input type=submit value=Continuar></form></table>";}
  21. Através da inspeção do navegador fiquei sabendo que estava usando indevidamente o marcador <li>, ele precisa estar dentro do grupo <ul>. Depois que eu coloquei o marcador <ul>, o navegador reclamou que eu só posso colocar <li> dentro dele. Assim, eu mudei de marcador, o <a>. Eu já usava esse marcador quando comecei a codificar, mas eu não gostava do formato azul com traço sublinhado, mas hoje eu já sei um pouco sobre a técnica de mudar o estilo. Eu também aprendi que não preciso usar href em todo marcador <a>. O primeiro impacto que eu senti nessa mudança foi no plano de contas, antes elas estavam um debaixo da outra. Agora as contas estão uma do lado da outra dentro do modal, isso parece meio bagunçado, mas eu gostei porque eu não preciso mais usar a barra de navegação para chegar na terceira página do plano de contas. No meu caso, eu acho bem melhor ter todas as informações em poucas linhas do que no formato convencional do politicamente correto. Claro que isso é uma péssima sugestão, mas no meu caso, eu adorei porque ganhei mais tempo.
  22. Esse é o novo erro que surgiu ontem. Encontrei no Google a orientação de colocar <?php session_start ?> logo no início do código. Por enquanto está dando certo.
  23. <?php if (isset($_POST['meuqi'])) { $meuqi=$_POST['meuqi']; $mysqli=new mysqli("servidor","usuario","senha","bancodedados"); $query=$mysqli->query("select count(qi) as maiores from tbqi where qi>$meuqi"); $maiores=$query->fetch_assoc()['maiores']; $query=$mysqli->query("select count(qi) as menores from tbqi where qi<$meuqi"); $menores=$query->fetch_assoc()['menores']; $query=$mysqli->query("select count(qi) as iguais from tbqi where qi=$meuqi"); $iguais=$query->fetch_assoc()['iguais']; echo "Nesse banco de dados foram encontrados $iguais QIs iguais ao seu; $maiores QIs maiores que o seu e $menores QIs menores que o seu"; exit;} echo "Qual é o seu QI? <form method=post><input name=meuqi></form>";
  24. Estou trabalhando num projeto que consulta as pessoas pelo nome, cnpj, endereço, telefone ou nota, estou usando o PHP. O problema é que eu tenho um <input type=text> e vários <input type=radio>, o primeiro input é para pegar o que o usuário quer buscar, os outros inputs indicam qual campo o programa deve buscar. Através do método da tentativa e erro, eu consegui ajuntar todas as informações no primeiro input assim: <input onchange=inpg.value=value+rnome.checked+rcnpj.checked+rend.checked+rtel.checked+rnota.checked;inpg.name="busca";frmg.submit()> Ele vai usar um formulário genérico que vai mandar para o servidor o que o usuário quer buscar junto com os valores das opções, isso pelo método POST. A minha primeira tentativa deu isso: franktruefalsefalsefalsefalse. Baseado nesse valor, eu fiz um algoritimo para separar o que o usuário digitou, desconsiderando o que ele escolheu. Eu gostei do algoritimo, e como sou bastante exibido, decidi compartilhar a minha solução: if (isset($_POST['busca'])) { $busca=$_POST['busca']; echo $busca."<br>"; $tamanho=strlen($busca); echo "tamanho $tamanho <br>"; for ($i=1;$i<=5;$i++) { if (substr($busca,$tamanho-5,5)=="false"){$busca=substr($busca,0,$tamanho-5);$tamanho=$tamanho-5;echo "$busca<br>";} else { $busca=substr($busca,0,$tamanho-4);$tamanho=$tamanho-4;echo "$busca<br>";} } exit;} O que eu gostei nesse algorítimo é que ele é bem pequeno, e funciona! Quanto ao projeto em si, eu não tenho a menor ideia quando vou conseguir terminar, mas aqui já tenho um esboço dele: <?php include("menu.php"); if (isset($_POST['busca'])) { $busca=$_POST['busca']; echo $busca."<br>"; $tamanho=strlen($busca); echo "tamanho $tamanho <br>"; for ($i=1;$i<=5;$i++) { if (substr($busca,$tamanho-5,5)=="false"){$busca=substr($busca,0,$tamanho-5);$tamanho=$tamanho-5;echo "$busca<br>";} else { $busca=substr($busca,0,$tamanho-4);$tamanho=$tamanho-4;echo "$busca<br>";} } exit;} echo "<br>"; $criterio=""; if (isset($_POST['criterio'])) {$criterio=$_POST['criterio'];} $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbpessoa where pessoa>='$criterio' order by pessoa limit 15"); $reg=mysqli_num_rows($query); echo '<table><tr><th>Busca<th align=left><input onchange=inpg.value=value+rnome.checked+rcnpj.checked+rend.checked+rtel.checked+rnota.checked;inpg.name="busca";frmg.submit()>'; echo "<tr><td><td align=left><input type=radio name=op id=rnome>Nome <input type=radio name=op id=rcnpj>CNPJ "; echo "<input type=radio name=op id=rend>End <input type=radio name=op id=rtel>Tel <input type=radio name=op id=rnota>Nota"; echo "<script>rnome.checked=true</script>"; while ($row=$query->fetch_assoc()) { $codp=$row['codp']; $pessoa=$row['pessoa']; echo "<tr><td align=right>$codp<td>$pessoa";} $criterio=$pessoa; if ($reg==15) { echo "<tr><td><td><form method=post>"; echo "<input type=hidden name=criterio value='$criterio'>"; echo "<input type=submit value=Continuar></form></table>";}
  25. Hoje foi bem difícil, mas consegui pegar a "chave" e o "valor" do Json. C:\wamp64\www\frank\astudy.php:5: array (size=6) 'codp' => string '1' (length=1) 'pessoa' => string 'Cem Porcento Musical Ind e Com Ltda' (length=35) 'cnpj' => string '03301914/0001-80' (length=16) 'end' => string 'R Coronel Luis Faria e Souza 255 V do Encontro' (length=46) 'tel' => string '' (length=0) 'nota' => string '' (length=0) codp 1 pessoa Cem Porcento Musical Ind e Com Ltda cnpj 03301914/0001-80 end R Coronel Luis Faria e Souza 255 V do Encontro tel Nesse quadro eu tenho o resultado de um var_dump do PHP e logo abaixo eu tenho as mesmas informações, só que dessa vez com a ajuda do JavaScript. A sintaxe do Java é bem diferente do PHP, eu fiz várias improvisações até chegar nesse resultado. Mas, enfim, aqui está o código fonte: <?php $mysqli=new mysqli("localhost","root","","diario"); $query=$mysqli->query("select * from tbpessoa"); $row=$query->fetch_assoc(); var_dump($row); echo "<div id=divmodal></div>"; $json=json_encode($row); echo "<script> var jsonJS=$json; var modal = '<table><tr><th><th>'; for(let i in jsonJS){modal=modal+'<tr><td>'+i+'<td>'+jsonJS[i];} modal=modal+'</table>'; divmodal.innerHTML=modal; </script>";
×
×
  • Criar Novo...