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

formulário htlm enviar dados para uma classe php e depois mostrar os resultados em outra pagina php


Alexsandro Santos

Pergunta

Olá pessoal! sou novo aqui no fórum e iniciante em php. tenho uma dúvida e preciso de ajuda... bom é o seguinte. tenho uma pagina php com um formulário html com os campos

ano;

estado;

nº de arvores cortadas;

e volume.

e tenho um outro arquivo php com uma classe com as devidas funções que tratarão os dados recebidos do formulário html.

ainda tenho uma outra pagina que mostrarão os resultados processados pelas funções da classe citada acima. 

o problema é que não estou conseguindo fazer essas paginas se comunicarem.

 

Em suma:

o arquivo calculadora.php envia dados para a classe reflorestamento.php que retorna os resultados para resultado.php

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Olá!
Não consegui compreender muito bem...
Tente fornecer mais alguma especificidade...

Você está usando arquitetura MVC?
Que banco de dados está usando?
Está se comunicando com o database usando mysqli?
Ou esses dados não vão ser salvos?

Link para o comentário
Compartilhar em outros sites

  • 0

Olá Wash  obrigado por responder... os dados não vão serem salvos... 

é um trabalho da faculdade de sistemas de informação... 

a ideia e fazer uma aplicação web seguindo os pilares da POO.

Criei um formulário em html onde tem os campos:

ANO;

ESTADO;

NUMERO DE ARVORE CORTADAS;

VOLUME (m³). 

seguindo os princípios de POO, criei uma interface conforme código:

<?php
interface Controle {
    public function numeroDearvoresARepor();
    public function valorAPagar();
    public function passarValores();
    public function mostrarDados();
    public function mostrarAno();
    public function mostrarEstado();
    public function mostrarNumerodeArvoresCortadas();
    public function mostrarVolume();
}

implementei  a interface no arquivo controleReflorestamento.php  conforme código.

<?php

require_once 'Controle.php';

class ControleReflorestamento implements Controle {
    private $ano;
    private $estado;
    private $numeroDeArvoresCortadas;
    private $volume;
    private $arvoresARepor;
    private $valorASerPago;
   
    function __construct() {
        $this->ano=2018;
        $this->estado='';
        $this->numeroDeArvoresCortadas=0;
        $this->volume=0;
        $this->arvoresARepor=0;
        $this->valorASerPago=0.00;        
    }
    private function getAno() 
    {
        return $this->ano;
    }
    private function getEstado() 
    {
        return $this->estado;
    }
    private function getNumeroDeArvoresCortadas() 
    {
        return $this->numeroDeArvoresCortadas;
    }
    private function getVolume() 
    {
        return $this->volume;
    }
    private function getArvoresARepor() 
    {
        return $this->arvoresARepor;
    }
    private function getValorASerPago() 
    {
        return $this->valorASerPago;
    }
    private function setAno($ano) 
    {
        $this->ano = $ano;
    }
    private function setEstado($estado) 
    {
        $this->estado = $estado;
    }
    private function setNumeroDeArvoresCortadas($numeroDeArvoresCortadas) 
    {
        $this->numeroDeArvoresCortadas = $numeroDeArvoresCortadas;
    }
    private function setVolume($volume) 
    {
        $this->volume = $volume;
    }
    private function setArvoresARepor($arvoresARepor) 
    {
        $this->arvoresARepor = $arvoresARepor;
    }
    private function setValorASerPago($valorASerPago) 
    {
        $this->valorASerPago = $valorASerPago;
    }
    public function numeroDearvoresARepor() 
    {
        $res = $this->getVolume()*6;
	echo strval($res);        
    }
    public function ValorAPagar() 
    {
        $res=$this->getNumeroDeArvoresCortadas()*(0.75);
	echo('R$ '.number_format($res,2));
    }
    public function passarValores() 
    {
      $this->setAno($_POST['cl_ano']);
      $this->setEstado($_POST['cl_estado']);
      $this->setNumeroDeArvoresCortadas($_POST['cl_nu_de_arvore_cortada']);
      $this->setVolume($_POST['cl_volume']);      
    }
    public function mostrarDados() 
    {
        
        //header("Location: Resultado_calculadora.php");
    }

    public function mostrarAno() 
    {
       echo($this->getAno()); 
    }

    public function mostrarEstado() 
    {
       echo($this->getEstado()); 
    }

    public function mostrarNumerodeArvoresCortadas() 
    {
       echo($this->getNumeroDeArvoresCortadas()); 
    }

    public function mostrarVolume() 
    {
      echo($this->getVolume());  
    }

}

e por fim  criei um arquivo Resultado.php onde me trará um resumo dos campos:

ANO;

ESTADO;

Nº. de arvores cortadas;

Volume(m³.)

e a quantidade de arvores a repor usando a função numeroDearvoresaRepor()

e o valor a ser pago usando a função ValorAPagar().

 

O Problema é que não estou conseguindo lincar os três arquivos...

tipo fazer os dados do formulário ser encaminhado para a minha classe e depois pegar os dados processados pela classe e mostrar em uma nova pagina...

 

 

dessa forma eu consegui... conforme código. mais não segue os princípios de POO...

<title>Calculadora de Reflorestamento</title>
</head> 
<div align="center"> <img src="Imagens/calculadora.png" align="left" height="100" width="100"/> <!--instruções html para inserir a imagem calculadora.png-->
    	<br/>
		<font color="#006600"><h1>Calculadora de Reflorestamento</h1></font> <!--Intrução para o título da pagina-->
</div>
    
    
     	
<body>
	<div id="formulario" align="center"> <!-- div para inserção do formulário-->
		<form id="form1" name="form1" method="post" action="Resultado_calculadora.php"> <!--Formulário início. Obs para o comando action onde 
		aponta para o arquivo Resultado_calculadora.php-->
			<table width="681" border="1" align="center" bordercolor="#003300"> <!--Tabela-->
			<tr>
				<td width="144" align="center">Ano</td> <!--Colunas-->
				<td width="156" align="center">Estado</td>
				<td width="188" align="center">Número de Arvores Contadas</td>
				<td width="165" align="center">Volume(m³)</td>
			</tr>
			<tr>
				<td>
				<label for="cl_ano"></label>
				<input type="text" name="cl_ano" id="cl_ano" required="required" style="border:none; text-align:center"/> <!--Campo ano-->
				</td>
				<td>
				<label for="cl_estado"></label>
				<select required name="cl_estado"  id="cl_estado" > <!--Campo Estado-->
					<option></option>
					<option>Acre</option>
					<option>Alagoas</option>
					<option>Amapá</option>
					<option>Amazonas</option>
					<option>Bahia</option>
					<option>Ceará</option>
					<option>Distrito Federal</option>
					<option>Espírito Santo</option>
					<option>Goias</option>
					<option>Maranhão</option>
					<option>Mato Grosso</option>
					<option>Mato Grosso do Sul</option>
					<option>Minas Gerais</option>
					<option>Pará</option>
					<option>Paraiba</option>
					<option>Paraná</option>
					<option>Pernambuco</option>
					<option>Piauí</option>
					<option>Rio de Janeiro</option>
					<option>Rio Grande do Norte</option>
					<option>Rio Grande do Sul</option>
					<option>Rondônia</option>
					<option>Roraima</option>
					<option>Santa Catarina</option>
					<option>São Paulo</option>
					<option>Sergipe</option>
					<option>Tocantins</option>
            
				</select>
			</td>
		<td>
			<label for="cl_nu_de_arvore_cortada"></label>
			<input type="text" name="cl_nu_de_arvore_cortada" id="cl_nu_de_arvore_cortada" required="required" style="border:none; text-align:center"/> 
			<!--Campo Número de arvores cortadas-->
		</td>
		<td>
			<label for="cl_volume"></label>
			<input type="text" name="cl_volume" id="cl_volume" required="required" style="border:none; text-align:center"/> <!--Campo Volume-->
		</td>
    </tr>
  </table>
  <p>
    <div align="center"> <input type="submit" name="cl_calcular" id="cl_calcular" value="Calcular"/></div> <!--Botão calcular-->
  </p>
</form> <!--Formulário fim-->
</div>
</body>
</html>

e  resultado

<?php
	
	Class resultado
	{
		function arvoresArepor($volume)
		{
			$res = $volume*6;
			echo strval($res);
		}
		
		function valorAPagar($numerodearvores)
		{
			$res=$numerodearvores*(0.75);
			echo('R$ '.number_format($res,2));
		}
	}
?>
<title>Resultado</title>
</head>
	
<body>
	<h1 style="font:'Comic Sans MS', cursive; color:#060;" align="center">Resultado</h1>
	<div align="center"> </div>
	<table width="716" border="1" align="center">
    <tr>
      <td width="64">Ano</td>
      <td width="98">Estado</td>
      <td width="200">Número de Arvores Cortadas</td>
      <td width="94">Volume (m³)</td>
      <td width="100">Árvore a Repor</td>
      <td width="120">Valor a ser Pago</td>
    </tr>
    <tr>
      <td align="center"><?php echo($_POST['cl_ano'])?></td>
      <td align="center"><?php echo($_POST['cl_estado'])?></td>
      <td align="center"><?php echo($_POST['cl_nu_de_arvore_cortada'])?></td>
      <td align="center"><?php echo($_POST['cl_volume']) ?></td>
      <td align="center" style="font:'Courier New', Courier, monospace; color:#030; font-style:oblique"><?php $res = new resultado(); $res->arvoresArepor($_POST['cl_nu_de_arvore_cortada'])?></td>
      <td align="center" style="font:'Courier New', Courier, monospace; color:#F00"><?php  $res = new resultado(); $res->valorAPagar($_POST['cl_nu_de_arvore_cortada'])?></td>
    </tr>
  </table>	


  
</body>
</html>

 

Link para o comentário
Compartilhar em outros sites

  • 0

A tarefa é mais ou menos assim...

questão 3

Crie uma aplicação web em PHP que auxiliará no cálculo do valor a ser pago,
e também do número de árvores que deverão ser replantadas.
Inicie criando uma página chamada de “CalculadoraReflorestamento.php”,

que deverá ser concebida através de um formulário HTML, onde o usuário
poderá informar os dados condizentes com a Tabela 1:

 

Tabela 1: Campos necessários para efetuar os cálculos desejados

Nome do Campo Tipo Características Propósito
Ano text Requerido Permitirá informar o ano
Estado select Requerido Permitirá selecionar o estado
Número de
árvores cortadas
text Requerido Número de árvores que foram cortadas
Volume (m³) text Requerido Volume em metros cúbicos, referente às
árvores cortada

Além desses campos, a página “CalculadoraReflorestamento.php” deverá
disponibilizar um botão capaz de acionar uma segunda página PHP, chamada
de “ResultadoCalculadora.php”. Os dados produzidos pelo formulário HTML,
deverão ser submetidos através do método POST à página mencionada. Já o
retorno produzido por ela, deverá respeitar o conteúdo apresentado no Quadro
1:
Quadro 1: Retorno da página “ResultadoCalculadora.php” ao estilo PHP

Total a Ser Pago
R$ $total_pagar

Resumo

Ano Estado Número de árvores
cortadas
Volume
(m³)
Árvores a
Repor
Valor a ser
pago
[ano] [estado] [número de arvores] [volume] $arvores_repor $total_pag

Todos os valores submetidos, serão reapresentados pela seção “Resumo”,
esses valores estão marcados por colchetes ([ e ]). Já os pontos que foram
declarados como sintaxe de variável em PHP, estes deverão ser calculados.
Considere para isso as seguintes fórmulas:


$arvores_repor: [volume] * 6;
$total_pagar: [número de arvores]

Questão 4

De acordo com a Tabela 1 da Tarefa 3, faça toda a programação de acordo
com os conceitos e normas da Programação Orientada a Objetos, ou seja,
na página “
CalculadoraReflorestamento.php” criada na Tarefa 3, todos os
dados deverão ser passados por uma Classe aplicando o conceito de
"Encapsulamento" (
métodos gets e sets) antes de persistir no Banco de
Dados;

Crie mais de uma classe se necessário para realização desta tarefa.
 

a questão 3 já está feita...

 

Link para o comentário
Compartilhar em outros sites

  • 0

Esse jeito que você fez está no caminho certo, nenhum Framework têm seu código 100% dentro de classes, sempre tem que ter um código estrutural para chamar as classes principais.

Então você tem que pensar o seguinte, você tem dois arquivos que receberão a requisição do usuário "CalculadoraReflorestamento .php" e "ResultadoCalculadora .php" esses arquivos são estruturais, o que você tem que fazer é criar um terceiro arquivo para a classe ControleReflorestamento que você já fez, é recomendável usar um arquivo com o mesmo nome "ControleReflorestamento.php", instancia-la e usar os seus métodos dentro de ResultadoCalculadora.php

Link para o comentário
Compartilhar em outros sites

  • 0

Esse é um debate de 2018, nele aprendi um novo conceito chamado interface e um novo método chamado implements, é um conceito de OOP de alto nível. Como o meu conhecimento em OOP é precário, só uso o método extends.

As classes são um péssimo lugar para guardar informações, o melhor lugar é o banco de dados. Mas se o projeto não tem banco de dados, aonde guardar as informações? Eu usei o HTML ou seja eu mandei todas as informações no $_POST, e joguei tudo de volta nos <input>:

<?php
interface Controle
{
    public function arvoresArepor($volume);
    public function pagar($arvores);
}

class ControleReflorestamento implements Controle
{
    public function arvoresArepor($volume)
    {
      return $volume*6;
    }

    public function pagar($arvores)
    {
      return $arvores*1.75;
    }
}



$ano=(isset($_POST['ano'])) ? $_POST['ano'] : 2024;
$estado=(isset($_POST['estado'])) ? $_POST['estado'] : "SP";
$arvoreCortada=(isset($_POST['arvoreCortada'])) ? $_POST['arvoreCortada'] : 10;
$volume=(isset($_POST['volume'])) ? $_POST['volume'] : 1;

?>
<table style="width:500px;margin:0 auto;border: 2px double" >
  <tr>
    <td colspan=6 style="text-align:center"> Calculadora Ambiental
  <tr>
    <td style="border:2px double">Ano
    <td style="border:2px double">Estado
    <td style="border:2px double">No. Árvores Cortadas
    <td style="border:2px double">Volume m3
    <td style="border:2px double">Árvores a Repor
    <td style="border:2px double">Pagar
  <tr>
    <td style="border:2px double"><?=$ano?>
    <td style="border:2px double;text-align:center"><?=$estado?>
    <td style="border:2px double;text-align:center"><?=$arvoreCortada?>
    <td style="border:2px double;text-align:center"><?=$volume?>
    <td style="border:2px double;text-align:center"><?=(new ControleReflorestamento)->arvoresArepor($volume)?>
    <td style="border:2px double;text-align:center;color:red"><?=(new ControleReflorestamento)->pagar($volume)?>
</table>
<p>
<form method=post style="width:500px;margin:0 auto">
  Formulário para alterar dados
  <table>
    <tr><td>Ano<td><input name=ano value=<?=$ano?>>
    <tr><td>Estado<td><input name=estado value=<?=$estado?>>
    <tr><td>No. Árvores Cortadas<td><input name=arvoreCortada value=<?=$arvoreCortada?>>
    <tr><td>Volume<td><input name=volume value=<?=$volume?>>
    <tr><td><td><input type=submit>
  </table>
</form>

 

Captura de tela 2024-06-03 230828.png

Editado por Frank K Hosaka
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,3k
    • Posts
      652,3k
×
×
  • Criar Novo...