Ir para conteúdo
Fórum Script Brasil
  • 0

O método POST


Frank K Hosaka

Pergunta

Eu pretendo pegar três arquivos PHP e colocar num só arquivo.

Cada tarefa de cada arquivo vai receber um POST, o problema é como criar um evento POST. Eu tentei usar navigator.sendBeacon do JavaScript, mas não consegui nenhum resultado. Assim, fui obrigado a trabalhar com o velho formulário. Mas eu melhorei a minha codificação, ao invés de criar um formulário para cada tarefa, eu só criei um formulário genérico para todas as tarefas. O certo mesmo era fazer o sendBeacon funcionar, aí eu não iria precisar de nenhum formulário.

O meu rascunho ficou assim:

<!DOCTYPE html><html lang="pt-BR">
<meta charset="UTF-8" name="viewport" content="width=device-width, initial-scale=1">
<title>projeto php</title>

<ul> 
<li onclick=inpg.name="balancete";frmg.submit()>Balancete</li>
<li onclick=inpg.name="razao";frmg.submit()>Razão</li>
<li onclick=inpg.name="apuracao";frmg.submit()>Apuração</li>
</ul>
<form id=frmg method=post><input type=hidden id=inpg></form>
<?php
if (isset($_POST['balancete'])) {
	echo "aqui começa a rotina do BALANCETE"; exit;}
if (isset($_POST['razao'])) {
	echo "aqui começa a rotina do RAZÃO";exit;}
if (isset($_POST['apuracao'])) {
	echo "aqui começa a rotina da APURACÃO";exit;}
?>	

 

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Terminei de migrar os três arquivos, e esse rascunho também acabou resolvendo um velho problema que eu tinha com a apuração. O máximo que eu consegui foi fazer a apuração voltar para o balancete, mas eu queria que ele também voltasse para o razão.

Agora, tanto o balancete como o razão podem chamar a apuração e depois que o usuário escolhe o período contábil, a tela volta para quem chamou a tarefa, e assim eu tirei a apuração do menu principal, ele fica embutido no cabeçalho do balancete ou do razão.

O cabeçalho é outra gambiarra que implantei.

Ao invés do famoso título "balancete de junho de 2022", eu eliminei o título e coloquei tudo no cabeçalho

No cabeçalho, ao invés de colocar conta, descrição da conta, saldo anterior, débito, crédito, saldo atual, eu omiti o título da primeira coluna, e na segunda coluna eu coloquei o periodo de apuração.

A mesma gambiarra eu fiz no razão, eliminei o título "extrato da conta - descrição da conta", embuti tudo no cabeçalho, ao invés de documento, data, valor e histórico, ele ficou assim: documento, ano, valor e conta-descrição da conta.

Colocar o ano no topo do cabeçalho foi uma grande mão na roda, nos registros individuais, ao invés de aparecer 07/06/2022, só vai aparecer 07/06 e isso ajuda bastante a ajeitar o razão dentro da tela do celular.

Para quem aprecia gambiarra, aqui segue a listagem:

menu.php
--------
<!DOCTYPE html>
<html lang="pt-BR">
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1">

<title>projeto php</title>
<head>
<style>
form {margin: 0;} 
li {margin: 0; padding: 0; list-style-type: none; white-space: nowrap;}
.menu {background-color:lightgray; border:1px solid;}
<?php
$sistema = substr($_SERVER["HTTP_USER_AGENT"],13,7);
if ($sistema=="Windows") { echo ".modal {display:none; position:fixed; background-color:lightgray; border:1px solid;top:10;left:10;width:30%;} .modal2 { display: none; background-color: lightgray; position: fixed; z-index: 1; left: 20%; top:20%;
padding: 10px; width: 55%;   height: 50%; overflow:auto;}";} else {
echo ".modal {display:none; position:fixed; background-color:lightgray; border:1px solid;top:10;left:10;width:50%;} .modal2 { display: none; background-color: lightgray; position: fixed; z-index: 1; left: 20%; top:20%;
padding: 10; width: 90%;   height: 70%; overflow:auto;} li {height:32px;}";}?>
table{border-collapse:collapse;}
td {white-space: nowrap;}
tr.impar{background-color:#FAFAFA;}
tr.par{background-color:#CCCCCC;}
</style>

<link rel="stylesheet" href="jquery-ui.css"> 
<script src="jquery-1.12.4.js"></script> 
<script src="jquery-ui.js"></script> 
<script>
    $(function(){
		$.datepicker.regional['pt-BR'] = {
		closeText: 'Fechar',
		prevText: '&#x3c;Anterior',
		nextText: 'Pr&oacute;ximo&#x3e;',
		currentText: 'Hoje',
		monthNames: ['Janeiro','Fevereiro','Mar&ccedil;o','Abril','Maio','Junho',
		'Julho','Agosto','Setembro','Outubro','Novembro','Dezembro'],
		monthNamesShort: ['Jan','Fev','Mar','Abr','Mai','Jun',
		'Jul','Ago','Set','Out','Nov','Dez'],
		dayNames: ['Domingo','Segunda-feira','Ter&ccedil;a-feira','Quarta-feira','Quinta-feira','Sexta-feira','Sabado'],
		dayNamesShort: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
		dayNamesMin: ['Dom','Seg','Ter','Qua','Qui','Sex','Sab'],
		weekHeader: 'Sm',
		dateFormat: 'dd/mm/yy',
		firstDay: 0,
		isRTL: false,
		showMonthAfterYear: false,
		yearSuffix: ''};
		$.datepicker.setDefaults($.datepicker.regional['pt-BR']);});
	$(function () {$("#datepicker").datepicker();});
	$(function () {$("#dia,#dia2").datepicker();});
</script>
<script>
function alterna(id) {id=id+"2";element=document.getElementById(id);
	var visor = $(element).css('display');
	if (visor=="block") {element.style.display='none';} else {element.style.display='block';}}
function compramodal(id) {pessoadiv.innerHTML=id;pessoadiv.style.display = "block"; inpqt.focus();}
function corrigir(id) {inpcorrigir.value=id;frmcorrigir.submit();}
function desligamodal2() {divmodal2.style.display='none';}
function detalhar(id){inpdetalhar.value=id;frmdetalhar.submit();}
function detalhe(id) {inpdetalhe.value=id; frmdetalhe.submit();}
function editar(id) {inpeditar.value=id; frmeditar.submit();}
function enviar(id) {inpenviar.value=id;enviarfr.submit();}
function excluir(id) {inpexcluir.value=id;excluirfr.submit();}
function incluir() {selecionarfr.submit();}
var lçto = "";
var descrição = "";
function lançar(id,jd) {lçto=id; descrição=jd; divplano.style.display='block';}
function ligapessoadiv() {pessoadiv.style.display='block';}
function multiplo(id) {inpmult.value=id; frmmult.submit();}
function pessoamodal(id) {pessoadiv.innerHTML=id;pessoadiv.style.display='block';}
function novo() {frmnovo.submit();}
function pessoa(id) {inppessoa.value=id;frmpessoa.submit();}
function registro(id,jd) {divplano.style.display='none';eleconta=document.getElementById(lçto);
	eledescrição = document.getElementById(descrição); eleconta.value=id; eledescrição.innerHTML=jd;}
function selecionar(id) {inpcodprod.value=id; frmcodprod.submit();}
</script> 
</head>
<body ondblclick=window.scrollTo(0,0)>
<div id=divmenu class=menu onclick=divmodal.style.display='block'>Menu</div>
<div id=pessoadiv class=modal2 onclick=pessoadiv.style.display='none'></div>
<div id=divmodal class=modal onclick=divmodal.style.display='none'>


	<?php 
	session_start();
	if ($_SESSION['senha']=="Basic") {echo "<ul>"
		."<li onclick=location.replace('orcamento.php')>Orçamento</li><br>"
		."<li onclick=location.replace('pessoa.php')>Pessoa</li><br>"
		."<li onclick=location.replace('produto.php')>Produto</li><br>"
		."<li onclick=location.replace('compra.php')>Pedido de Compra</li></ul>";}

	if ($_SESSION['senha']=="Full") {echo "<ul>"
		."<li onclick=location.replace('diario.php')>Diário</li><br>"
		."<li onclick=inpg.name='balancete';frmg.action='balancete.php';frmg.submit()>Balancete</li><br>"
		."<li onclick=location.replace('pagar.php')>Pagar</li><br>"
		."<li onclick=location.replace('orcamento.php')>Orçamento</li><br>"
		."<li onclick=location.replace('pessoa.php')>Pessoa</li><br>"
		."<li onclick=location.replace('produto.php')>Produto</li><br>"
		."<li onclick=location.replace('compra.php')>Pedido de Compra</li></ul>";}
	?>
</div>

<form id=frmg method=post><input type=hidden id=inpg></form>
  

  
  
balancete.php
--------------------------------------
  
<?php
include('menu.php');
function dec($num) {if (empty($num)) {$fmt="";} else {$fmt = number_format($num,2,',','.'); return $fmt;}}
function df($data) {$fmt = date('d/m/Y',strtotime($data)); return $fmt;}
function df2($data) {$fmt = date('m/Y',strtotime($data)); return $fmt;}
function df3($data) {$fmt = date('d/m',strtotime($data));return $fmt;}
if (isset($_POST['balancete'])) {
$tlinha=0; $receita=0; $despesa=0; 
$mysqli=new mysqli("localhost","root","","diario");
$query = $mysqli->query("select * from tbsupervariavel");
$linha = $query->fetch_assoc();
$mes=$linha['mesapurado'];
$ano=$linha['anoapurado'];
$ultimo="$ano-$mes-1";$ultimo=strtotime($ultimo); $primeiro=date('Y-m-d',$ultimo);
$penultimo=$ultimo-1;$penultimo=date('Y-m-d',$penultimo);
$ultimo=date('Y-m-t',$ultimo);
$mesextenso=$linha['mesextenso'];
echo "<table><tr class='par'><th><th align=left>";
echo "<li onclick=inpg.name='apuracao';inpg.value=1;frmg.submit()>$mesextenso de $ano</li>";
echo "</th><th align=right>Anterior<th align=right>Débito";
echo "<th align=right>Crédito<th align=right>Saldo Atual";
$query = $mysqli->query("select * from tbconta");
while($linha = $query->fetch_assoc()){
	$conta=$linha['conta'];
	$conta = "<li onclick=inpg.name='razao';inpg.value=$conta;frmg.submit() style=color:blue>$conta</li>";
	$conta2=$linha['conta'];
	$tlinha=$tlinha+1;if ($tlinha%2==0){$class='par';} else {$class='impar';}
	echo "<tr class='$class'><td>$conta</td><td>".$linha['descricao']."</td><td align=right>";
	$sql = "select (sum(ifnull(debito,0))-sum(ifnull(credito,0))) as saldo from tbdiario where dia<='$penultimo' and conta=".$linha['conta'];	
	$query2 = $mysqli->query($sql); $row = $query2->fetch_assoc(); $saldo= dec($row['saldo']);
	echo "$saldo</td><td align=right>";
	$sql = "select (sum(ifnull(debito,0))) as saldo from tbdiario where (dia between '$primeiro' and '$ultimo') and conta=".$linha['conta'];	
	$query2 = $mysqli->query($sql); $row = $query2->fetch_assoc(); 	$saldo= dec($row['saldo']);
	echo "$saldo</td><td align=right>";
	$sql = "select (sum(ifnull(credito,0))) as saldo from tbdiario where (dia between '$primeiro' and '$ultimo') and conta=".$linha['conta'];	
	$query2 = $mysqli->query($sql); $row = $query2->fetch_assoc(); 	$saldo= dec($row['saldo']);
	echo "$saldo</td><td align=right >";
	$sql = "select (sum(ifnull(debito,0))-sum(ifnull(credito,0))) as saldo from tbdiario where dia<='$ultimo' and conta=".$linha['conta'];	
	$query2 = $mysqli->query($sql); $row = $query2->fetch_assoc(); 	$saldo= dec($row['saldo']);
	echo "$saldo</td></tr>";
	if ($conta2>=301 and $conta2<=304){$receita = $receita + $row['saldo'];}
	if ($conta2>304){$despesa = $despesa + $row['saldo'];}
	if ($conta2==304){$tlinha=$tlinha+1; if ($tlinha%2==0){$class='par';} else {$class='impar';}}
	if ($conta2==304){echo "<tr class='$class'><td></td><td></td><td></td><td></td><td align=right><b>Receita</td><td align=right><b>".dec($receita)."</td></tr>";}}
$tlinha=$tlinha+1; if ($tlinha%2==0){$class='par';} else {$class='impar';}
echo "<tr class='$class'><td></td><td></td><td></td><td></td><td align=right><b>Despesa</td><td align=right><b>".dec($despesa)."</td></tr>";
if(abs($receita)>$despesa){$resultado="Lucro";} else {$resultado="Prejuizo";}
$tlinha=$tlinha+1; if ($tlinha%2==0){$class='par';} else {$class='impar';}
echo "<tr class='$class'><td></td><td></td><td></td><td></td><td align=right><b>$resultado</td><td align=right><b>".dec($despesa+$receita)."</td></tr>";
echo "</table>"; exit;}

if (isset($_POST['voltadiario'])) {
	$mysqli=new mysqli("localhost","root","","diario");
	$diar=$_POST['voltadiario']; 
	$diar=implode('-',array_reverse(explode('/',$diar))); 
	$query=$mysqli->query("update tbsupervariavel set dia='$diar'");
	echo "<script>location.replace('diario.php')</script>";}

if (isset($_POST['razao'])) {
$mysqli=new mysqli("localhost","root","","diario");
$conta = $_POST['razao'];
$query = $mysqli->query("select descricao from tbconta where conta=$conta");
$descricao = $query->fetch_row()[0];
$query = $mysqli->query("select * from tbsupervariavel");
$linha = $query->fetch_assoc(); $mes=$linha['mesapurado']; $ano=$linha['anoapurado'];$mesextenso=$linha['mesextenso'];
$ultimo="$ano-$mes-1";$ultimo=strtotime($ultimo); $primeiro=date('Y-m-d',$ultimo);
$penultimo=$ultimo-1;$penultimo=date('Y-m-d',$penultimo);$ultimo=date('Y-m-t',$ultimo);
$sql = "select (sum(ifnull(debito,0))-sum(ifnull(credito,0))) as saldo from tbdiario where ";
$sql .="dia<='$penultimo' and conta='$conta'";
$query2 = $mysqli->query($sql); $linha2=$query2->fetch_assoc(); $saldo = $linha2['saldo'];
if ($saldo>0) {$saldo= dec($saldo);} else {$saldo="<font color=red>".dec($saldo)."</font>";}
$query = $mysqli->query("select * from tbdiario where conta='$conta' and (dia between '$primeiro' and '$ultimo')");
echo "<table><tr><th>Docto<th><li onclick=inpg.name='apuracao';inpg.value=$conta;frmg.submit()>$ano</li><th>";
echo "<th align=left><li onclick=inpg.name='balancete';frmg.submit()>$conta $descricao</li>";
echo "<tr><td></td><td></td><td align=right><b>$saldo</td><td><b>Saldo anterior</td></tr>";
while ($linha=$query->fetch_assoc()){ 
	$diar = df($linha['dia']); $diar2=df3($linha['dia']);
	$valor = $linha['debito']-$linha['credito'];
	$docto = $linha['docto'];
	$diar2="<li onclick=inpg.name='voltadiario';inpg.value='$diar';frmg.submit() style=color:blue>$diar2</li>";
	if ($valor>0) {$valor = dec($valor);} else {$valor="<font color=red>".dec($valor)."</font>";}
	echo "<tr><td valign='top'>$docto<td>$diar2<td align=right valign='top'>$valor<td valign='top'>".$linha['hist'];}	
$sql="select sum(ifnull(debito,0)) as tdebito from tbdiario where conta='$conta' and (dia between '$primeiro' and '$ultimo')";
$query2=$mysqli->query($sql);$linha2=$query2->fetch_assoc();$tdebito=dec($linha2['tdebito']);
echo "<tr><td><td><td align=right><b>$tdebito<td><b>Total de débito";
$sql="select sum(ifnull(credito,0)) as tcredito from tbdiario where conta='$conta' and (dia between '$primeiro' and '$ultimo')";
$query2=$mysqli->query($sql);$linha2=$query2->fetch_assoc();$tcredito=dec($linha2['tcredito']);
echo "<tr style='color:red'><td><td><td align=right><b>$tcredito<td><b>Total de crédito";
$sql="select (sum(ifnull(debito,0))-sum(ifnull(credito,0))) as saldo from tbdiario where dia<='$ultimo' and conta='$conta'";
$query2 = $mysqli->query($sql); $linha2=$query2->fetch_assoc(); $saldo = $linha2['saldo'];
if ($saldo>0) {$saldo= dec($saldo);} else {$saldo="<font color=red>".dec($saldo)."</font>";}
echo "<tr><td><td><td align=right><b>$saldo<td><b>Saldo atual</table>";exit;}

if (isset($_POST['apuracao'])) {
	$voltarpara=$_POST['apuracao'];
if (isset($_POST['escolhido'])) {
	// atualiza o período de apuração para balancete e razão
	$mysqli=new mysqli("localhost","root","","diario");
	$apuracao=$_POST['escolhido'];
	$apuracao = strtotime($apuracao);
	$format = new IntlDateFormatter('pt_BR', IntlDateFormatter::NONE, IntlDateFormatter::NONE, NULL, NULL, "MMMM");
	$mesextenso = datefmt_format($format, $apuracao); $mesextenso = ucfirst($mesextenso);
	$ano=date('Y',$apuracao);
	$mes=date('m',$apuracao);
	$query=$mysqli->query("update tbsupervariavel set anoapurado = $ano where codsuper=1");
	$query=$mysqli->query("update tbsupervariavel set mesapurado = $mes where codsuper=1");
	$query=$mysqli->query("update tbsupervariavel set mesextenso = '$mesextenso' where codsuper=1");
	if ($voltarpara==1) {
		echo "<script>inpg.name='balancete';frmg.submit()</script>";} else {
		echo "<script>inpg.name='razao';inpg.value=$voltarpara;frmg.submit()</script>";}}
$msqli = $mysqli=new mysqli("localhost","root","","diario");
$sql="Select * from vw_apuracao";
$query = $msqli->query($sql);
echo "<table><tr>";
while($linha = $query->fetch_assoc()) {
	$apuracao = $linha['apuracao'];
    echo "<form method='post'><input type=hidden name=apuracao value=$voltarpara>";
	echo "<td><button name=escolhido value=$apuracao>".df2($apuracao)."</button></td>";
	$mes=substr($apuracao,5,2);if (($mes=='01') or ($mes=='07')) {echo "</tr><tr>";}}
echo "</table>"; exit;}
?>	

Claro que a listagem é um horror, mas melhorou 5% depois que comecei a usar o método POST.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...