Jump to content
TecInfo

Fazendo a verificação de radio button

Recommended Posts

Bom dia pessoal, sou novo no fórum, caso tenha alguma incoerência, ou algo que tenha feito errado, peço desculpa e que me corrijam, agora vamos ao problema: Eu preciso fazer um "churrascometro" totalmente em PHP o mesmo ao final devera me mostrar o resultado em PDF, sendo que deve ser por etapa, cada etapa uma pergunta no caso um radio button com as opções, ai sigo a próxima etapa puxando os dados da etapa anterior e escondendo com o input="hidden", ai que o bicho pega, pois eu no final preciso que o PDF seja impresso apenas com os dados que eu solicitei no radio, eu fiz essa verificação porém so funciona a ultima que seria a verificação das bebidas, o resto está totalmente seguindo o msm padrão mas nao funciona ao final me manda todas as opções e suas respostas e não só as que foram marcadas no radio, creio que o problema esteja nisso de carregar os dados de uma etapa para a outra, pois o ultimo que nao precisei carregar com e esconder com o hidden pois era ultima etapa a das bebidas,  ficou ok e funcionou, mostrando só o que foi solicitado! segue abaixo os códigos, se alguém puder me ajudar ficaria muito grato, pois estou a 2 dias tentando e não acho solução, sou novo na área e não consigo resolver sozinho, já pesquisei bastante tbm mas tudo sem sucesso.

codi02.png

codi01.png

codi03.png

codi04.png

codi05.png

Share this post


Link to post
Share on other sites

Deve ser Gaúcho pra fazer um Churrascômetro hehe

 

Bom, o correto seria trabalhar com banco de dados para armazenar as respostas, depois só buscaria no banco e realizaria os cálculos. Também faria tudo em uma página apenas, ficaria bem mais prático.

 

Para o seu exemplo, como são poucas questões, você pode guardar as respostas em variáveis super globais, ou seja, acessível em qualquer local do seu projeto, como $_SESSION por exemplo, não é a melhor prática, mas pro seu exemplo funciona, montei um exemplo, segue:

 

etapa1.php

<!DOCTYPE html>
<html lang="pt-br">
   <head>
       <meta charset="utf-8"/>
       <title>Etapa 1</title>
   </head>
   <body>
       
    <form method="POST" action="funcoes.php">
    
        <input type="radio" name="questao1" value="picanha"> Picanha<br>
        <input type="radio" name="questao1" value="maminha"> Maminha<br>
        <input type="radio" name="questao1" value="costela"> Costela<br>
        
        <input type="submit" name="btn_questao_1" value="Enviar">
    </form>

   </body>
</html>

etapa2.php

<!DOCTYPE html>
<html lang="pt-br">
   <head>
       <meta charset="utf-8"/>
       <title>Etapa 2</title>
   </head>
   <body>

    <form method="POST" action="funcoes.php">

        <input type="radio" name="questao2" value="crianca"> Criança<br>
        <input type="radio" name="questao2" value="mulher"> Mulher<br>
        <input type="radio" name="questao2" value="homem"> Homem<br>

        <input type="submit" name="btn_questao_2" value="Enviar">
    </form>

   </body>
</html>

 

etapa3.php

<!DOCTYPE html>
<html lang="pt-br">
   <head>
       <meta charset="utf-8"/>
       <title>Etapa 3</title>
   </head>
   <body>
     
    <form method="POST" action="funcoes.php">

        <input type="radio" name="questao3" value="coca"> Coca-Cola<br>
        <input type="radio" name="questao3" value="pepsi"> Pepsi<br>
        <input type="radio" name="questao3" value="fantalaranja"> Fanta Laranja<br>

        <input type="submit" name="btn_questao_3" value="Enviar">
    </form>

   </body>
</html>

finalizar.php: aqui mostraria o resultado dos cálculos.

<!DOCTYPE html>
<html lang="pt-br">
   <head>
       <meta charset="utf-8"/>
       <title>Churras</title>
   </head>
   <body>

     <?php
        require_once "funcoes.php";
        $resultados = calcular();
        echo "<pre>";
        print_r($resultados);
     ?>

   </body>
</html>

funcoes.php: aqui cria as $_SESSION com sua resposta e realizar os cálculos na function calcular()

<?php

if(isset($_POST['btn_questao_1'])){
  $res1 = $_POST['questao1'];
  session_start();
  $_SESSION['questao1'] = $res1;
  header("Location:etapa2.php");
}

if(isset($_POST['btn_questao_2'])){
  $res2 = $_POST['questao2'];
  session_start();
  $_SESSION['questao2'] = $res2;
  header("Location:etapa3.php");
}

if(isset($_POST['btn_questao_3'])){
  $res3 = $_POST['questao3'];
  session_start();
  $_SESSION['questao3'] = $res3;
  header("Location:finalizar.php");
}

function calcular (){
  // terá todas as respostas aqui guardadas nas sessões
  session_start();
  $questao1 = $_SESSION['questao1'];
  $questao2 = $_SESSION['questao2'];
  $questao3 = $_SESSION['questao3'];

  // realiza teus cálculos e retorna os valores num array por exemplo

  $arrayResultados = array(
    'questao1' => $questao1,
    'questao2' => $questao2,
    'questao3' => $questao3
  );
  return $arrayResultados;
}

?>

Levei em consideração que apenas 1 rádio button é o certo por etapa, por isso eles tem o mesmo name, muda apenas o value.

 

Basicamente ele envia a resposta da questão para funcoes.php por POST e armazena a variável numa $_SESSION. Aí lá no finalizar você chama a função, passar as respostas para variáveis, realizar teus cálculos e dar um return, ai fica pra você imprimir na tela os resultados e gerar um PDF como quiser.

 

É um exemplo funcional e estruturado, tem soluções melhores, validações para fazer e etc. Aí tem apenas o básico para funcionar e atender sua questão, basta adaptar ele. Roda ele para entender como funciona.

 

Veja o manual sobre $_SESSION. Para usar sempre precisa inicializar antes com session_start();

 

Qualquer dúvida, retorna aí.

Share this post


Link to post
Share on other sites

Muito obrigado amigoo, sou gaúcho sim haha, assim que chegar em casa vou olhar com calma e colocar em pratica, pois é em uma pagina ficaria bem mais fácil, mas o professor pediu pra fazer tudo assim, cada etapa uma pagina, muito obrigado pela explicação, consegui pegar já a ideia, vou colocar em prática assim que chegar, por enquanto segue meus sinceros agradecimentos!!!

Share this post


Link to post
Share on other sites

caras, eu preciso fazer um churrascometro num site meu no worpress alguem pode me dar um norte do que fazer?

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By dutopfave
      Galera tenho um cadastro de cliente que preenche nome e login, ai quando digita o nome, automaticamente ele preenche o login, pra agiliza, ta assim: $("#inputdonome").blur(function(){ $("#login").val($(this).val()); }); só que to com problema de nome repetido, então vou muda ao invés de preenche automático com nome, preenche com EMAIL, porém tem como preenche automático o login só q para antes de chega no '@'   ai ficaria assim:

      E-mail: contato2019@site.com.br
      Login: contato2019
    • By JenneferBarbosa
      <label>Data Inicio</label> <input type="date" name="data_inicio-incluir" id="data_inicio-incluir"> <label>Data Fim</label> <input type="date" name="data_fim-incluir" id="data_fim-incluir"> Boa tarde pessoal, estou iniciando em JS e não sei como fazer a validação de datas. Estou fazendo um sistema de aluguel de livros, então,  como consigo verificar se a data_fim não é menor que a data inicio e que a data_fim seja de 1 até 7 dias depois da data_inicio, não podendo ultrapassar. Se alguém tiver como me ajudar, ficarei muito grata.  
    • By WitchMad
      Ooi gente!
      Seguinte, estou desenvolvendo uma plataforma para advogados. Nela será consultado processos a partir do web service do PJE.
      No site do PJE me recomendou utilizar o NuSoap para consultar o web service e foi o que eu fiz.
      Segue o código da consulta
      <?php require_once 'nusoap/lib/nusoap.php'; /* Parâmetros Requisitados */ // idConsultante // senhaConsultante // numeroProcesso /* Objetos de Resposta sucesso bollean Indica se houve sucesso na consulta do processo. mensagem string Mensagem informando que o processo foi consultado com sucesso. recibo xs:base64Binary Comprovante do protocolo do processo, que contém os dados básicos do processo. */ $wsdl = "https://www.tjpe.jus.br/pje/intercomunicacao?wsdl"; $client = new nusoap_client($wsdl, 'wsdl'); if($client->getError()){ echo "Erro no construtor" . $client->getError(); exit(); } $result = $client->call('consultarProcesso', array('idConsultante'=>'CPF do Consultante', 'senhaConsultante'=>'Senha do Consultante', 'numeroProcesso'=>'Número do Processo')); echo $result['sucesso']; ?> Acontece que a página fica em branco, sem nenhum tipo de mensagem.
      Se possível gostaria de dicas se há algum erro no código, ou alguma outra ferramenta para consultar web service
    • By Alvaro Pacífico Serpa
      Olá pessoal, eu estava copiando um trecho de um código fonte usando o file_gets_contents
      $log=file_get_contents($url); $trechoInicial = "VideoUrl('"; $trechoFinal = "')"; $posicao1 = strpos($log, $trechoInicial); $posicao2 = strpos( $log, $trechoFinal, $posicao1 ); $trechoCopiado = substr( $log, $posicao1 + strlen( $trechoInicial ), $posicao2 - $posicao1 - strlen( $trechoInicial ) ); echo $trechoCopiado; Estava funcionando perfeitamente e do nada parou de funcionar, tem alguma outra forma de fazer isto que estou fazendo?
    • By Leonardo Ortega
      Prezados, bom dia.
      sou novo por aqui, e me deparei com esta situação:
      estou desenvolvendo um projeto e tudo começou quando apenas mudei o banco de dados que estava conectado. Ou seja, se eu me conecto ao baco de dados anterior, volta todo código html, porém, se conecto ao banco de dados atual as divs desaparecem. 
       
      obs: Isso tb acontece quando eu desativo o php tudo volta como a imagem 1 e se eu ativo fica como a imagem2.
       
      quem pode me ajudar.. desde já muito obrigado.  


×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.