Lá em 2020, eu usei $_GET para montar o meu orçamento em PHP.
Aqui em 2024 estou estudando o MVC, onde você separa os códigos por partes em modelo, visão e controle. O problema é que eu ainda preciso da gambiarra do $_GET para a visão funcionar (eu não sei usar o JavaScript). Para a minha sorte, acabei descobrindo que é bem mais fácil manusear o $_GET pelo MVC do que pelo PHP convencional. O código a seguir está incompleto, mas a rotina que trabalha com o $_GET já funciona:
arquivo Controles > ControleOrcamento.php
<?php
classControleOrcamentoextendsControle{publicfunction inicio(){
$prod=$this->Conexao->select("* from tbprod order by prod");
$maquina=strpos($_SERVER['HTTP_USER_AGENT'],"Windows");
$hoje=date('Y-m-d');
$vr=['ped'=>'','diaped'=>$hoje,'totalped'=>'','codp'=>'','pessoa'=>'','end'=>'','cnpj'=>'','tel'=>'','nota'=>'','codprod'=>'','un'=>'','prod'=>'','preço'=>'','horavenda'=>''];
$where="";if(isset($_GET['inicio'])){if($_GET['inicio']=="novo"){
$vr['ped']=$_GET['novo'];$_SESSION['ped']=$_GET['novo'];
$histped=[];return $this->view('Orcamento',['vr'=>$vr,'histped'=>$histped,'prod'=>$prod,'maquina'=>$maquina]);}if($_GET['inicio']=="produto"){
$vr['prod']=$_SESSION['prod'];
$vr['un']=$_SESSION['un'];
$vr['preço']=$_SESSION['preço'];}if($_GET['inicio']!=="novo"&& $_GET['inicio']!=="produto"){
$ped=$_GET['inicio']; $_SESSION['ped']=$ped;
$where="where ped=$ped";
unset($_GET['inicio']);}}
$ped=$this->Conexao->select("* from tbpedido $where order by ped desc")[0];
$vr['ped']=$ped->ped; $_SESSION['ped']=$ped->ped;
$vr['diaped']=$ped->dia;
$vr['horavenda']=$ped->horavenda;
$vr['totalped']=$ped->total;
$vr['codp']=$ped->codp;if($vr['codp']){
$pessoa=$this->Conexao->select("* from tbpessoa where codp=". $vr['codp'])[0];
$vr['pessoa']=$pessoa->pessoa;
$vr['end']=$pessoa->end;
$vr['cnpj']=$pessoa->cnpj;
$vr['tel']=$pessoa->tel;
$vr['nota']=$pessoa->nota;}
$histped=$this->Conexao->select("tbhistped.id,tbhistped.ped, tbhistped.codprod,
tbhistped.qt as qt, tbhistped.unitario as unitario, tbhistped.subtotal,
tbprod.prod as prod, tbprod.un as un
from tbhistped inner join tbprod on tbhistped.codprod = tbprod.codprod
and tbhistped.ped = $ped->ped order by tbhistped.id");return $this->view('Orcamento',['vr'=>$vr,'histped'=>$histped,'prod'=>$prod,'maquina'=>$maquina]);}publicfunction historicoOrc(){
$where="";if(isset($_GET['historicoOrc'])){
$ped=$_SESSION['referencia']+$_GET['historicoOrc'];
$where="where ped <= $ped";}
$pedidos=$this->Conexao->select("* from tbpedido left join tbpessoa on
tbpedido.codp = tbpessoa.codp $where order by ped desc limit 20");
$_SESSION['referencia']=$pedidos[0]->ped;return $this->view('HistoricoOrc',['pedidos'=>$pedidos]);}publicfunction novo(){
$pedido=$this->Conexao->select("* from tbpedido order by ped desc")[0];
$ped=$pedido->ped;
$total=$pedido->total;if($total!==null){$ped++;}return header("location:?ControleOrcamento.inicio.novo&novo=$ped");}publicfunction produto(){
$produto=$_POST['produto'];
$tamanho=strlen($produto);
$posicao=strpos($produto,":");if($posicao==0){
$_SESSION['filtro']=$produto;
$_SESSION['endereco']="Orcamento";return header('location:?ControleProduto.produto');}
$_SESSION['codprod']=substr($produto,$posicao+1,$tamanho-$posicao);
$produto=$this->Conexao->select("* from tbprod where codprod=". $_SESSION['codprod'])[0];
$_SESSION['prod']=$produto->prod;
$_SESSION['un']=$produto->un;
$_SESSION['unitario']=pvenda($produto->custo,$produto->marg);return header('location:?ControleOrcamento.inicio.produto');}publicfunction qt(){
$qt=$_POST['qt'];
$ped=$_SESSION['ped'];
$un=$_SESSION['un'];
$unitario=deca($_SESSION['unitario']);
$subtotal=$qt*$unitario;
$codprod=$_SESSION['codprod'];
$this->Conexao->insert("tbhistped (ped,codprod,un,unitario,subtotal,qt)
values ($ped,$codprod,'$un',$unitario,$subtotal,$qt)");
$this->inicio();}}
arquivo Visoes>Orcamento.php
<?php include VISOES .'Menu.php';?><script>document.title="Orçamento"
btmenu.innerHTML='Orçamento'</script><tableclass='table table-striped'><td><ahref=?ControleOrcamento.historicoOrc>Historico</a><tdclass=text-danger>Pedido <?=$vr['ped']?> de <?=fmt($vr['diaped'])?><td><ahref=?ControleOrcamento.novo>Novo</a><?php if($maquina===13):?><td><a href=controlid?pedido.<?=$vr['ped']?>>Imprimir</a><?php endif;?></table><tableclass='table table-striped'><th>Produto<thstyle=text-align:right>Qt<th>Un<th>Preço<th>Total
<?php foreach($histped as $item):?><tr><tdnowrap><?=$item->prod?><tdclass=text-end><form><?php if($item->qt==intval($item->qt)):?>
<input name=aqt value='<?=$item->qt?>' onchange=submit() size=1
style=text-align:right;border:none;background:transparent>
<?php else:?>
<input name=aqt value='<?=dec($item->qt)?>' onchange=submit() size=1
style=text-align:right;border:none;background:transparent>
<?php endif;?>
<input type=hidden name=id value=<?=$item->id?>>
<input type=hidden name=ped value=<?=$item->ped?>>
</form><td><a href=?ControleOrcamento.excluir.<?=$item->id?>&pedido=<?=$item->ped?>><?=$item->un?></a><tdclass=text-end><?=dec($item->unitario)?><tdclass=text-end><?=dec($item->subtotal)?><?php endforeach;?><tr><?php if(!isset($_GET['inicio'])):?><td><formaction=?ControleOrcamento.produtomethod=post><inputlist=lsprodutoname=produtoplaceholder=produtoonchange=submit()size=40autofocus><datalistid='lsproduto'><?php foreach($prod as $pr):?>
<option value='<?=$pr->prod?> :<?=$pr->codprod?>'>
<?php endforeach;?></datalist></form><?php else:?><td><?=$vr['prod']?><?php endif;?><?php if(!isset($_GET['qt'])):?><tdclass=text-end><formaction=?ControleOrcamento.qtmethod=post><inputid=qtname=qtonchange=submit()size=1placeholder=qtautofocus>
<input type=hidden name=texto value="<?=fmt($vr['preço'])?>,<?=$vr['ped']?>,<?=$vr['un']?>">
</form><td><?=$vr['un']?><tdclass=text-end><?=$vr['preço']?><td><?php endif;?><tr><td><?php if(empty($vr['codp'])):?><ahref=pessoa>Selecione um cliente</a><?php else:?><details><summary><b><?=$vr['pessoa']?></b></summary>
Endereço <b><?=$vr['end']?></b><br>
CNPJ <b><?=$vr['cnpj']?></b><br>
Telefone <b><?=$vr['tel']?></b><br>
Nota <b><?=$vr['nota']?></b><br><ahref=pessoa>Mudar cliente</a><br>
<a href="pessoa?busca=<?=$vr['pessoa']?>">Atualizar cliente</a></details><?php endif;?><td><td><td><td><b><?=dec($vr['totalped'])?></table>
Pergunta
Frank K Hosaka
Lá em 2020, eu usei $_GET para montar o meu orçamento em PHP.
Aqui em 2024 estou estudando o MVC, onde você separa os códigos por partes em modelo, visão e controle. O problema é que eu ainda preciso da gambiarra do $_GET para a visão funcionar (eu não sei usar o JavaScript). Para a minha sorte, acabei descobrindo que é bem mais fácil manusear o $_GET pelo MVC do que pelo PHP convencional. O código a seguir está incompleto, mas a rotina que trabalha com o $_GET já funciona:
Editado por Frank K Hosaka
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
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.