Como percorrer um ARRAY com valores de CHECKBOX dentro de um array $_POST dinamicamente em PHP?

01/03/2015

0

PHP

Boas Pessoal! Tenho uma missão quase impossível. Estou criando um formulário dinâmico em que as perguntas e possíveis respostas estão no DB. Ou seja, é algo muito variável pois o Administrador do Sistema escolherá as perguntas e possíveis respostas que o usuário comum poderá responder.

Página que pegaria as perguntas do banco e suas possíveis respostas(caso sejam campos tipos radio ou checkbox); assim como as respostas dadas pelo formulário.
Abaixo está só o código teste estático sem pegar nada do banco e com "perguntas" fictícias.
<?php
    
    if(filter_input(INPUT_SERVER, 'REQUEST_METHOD')=='POST') {
        
        //Percorre a Variável Global $_POST
       foreach($_POST as $chave=>$campo) {
           
           //Recuperra a chave e o campo 
           $comando = '$' . $chave . '= filter_input(INPUT_POST, "' . $campo . '");';
           
           //Transforma a variável comando em um comando
           eval($comando);
           
           //Imprime o comando para a nossa visualização
           echo $comando . '<br />';
       }
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>TESTE DE DADOS</title>
    </head>
    <body>
        <br />
        <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
            <input type="checkbox" name="disciplina[]" value="1" />Matemática<br />
            <input type="checkbox" name="disciplina[]" value="2" />Português<br /><br />
            <input type="radio" value="sim" name="pode" />Sim<br />
            <input type="radio" value="não" name="pode" />Não<br /><br />
            <input type="text" name="nome" /><br /><br />
            <textarea name="texto"></textarea><br />
            <input type="submit" />
        </form>
    </body>
</html>



Outro problema é que estou recebendo esse erro:
[img]http://arquivo.devmedia.com.br/forum/imagem/414840-20150301-130706.png[/img]
Yan Machado

Yan Machado

Responder

Post mais votado

01/03/2015

Já sei como fazer.
<?php
    if(filter_input(INPUT_SERVER, 'REQUEST_METHOD')=='POST') {
        
        $s = array();
        foreach ($_POST as $chave => $valor) {
          if(is_array($valor)) {
              echo 'Chave: ' . $chave . ' Valores:<br />';
              foreach($valor as $ch=>$va){
                  echo 'Chave: ' . $ch . ' | Valor: ' . $va . '<br />';
              }
              echo '<br />';
          } else {
              echo 'Chave: ' . $chave . ' | Valor: ' . $valor . '<br />';  
          }
        }
       
    }
?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>TESTE DE DADOS</title>
    </head>
    <body>
        <br />
        <form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']);?>" method="post">
            <input type="checkbox" name="disciplina[]" value="Matemática" />Matemática<br />
            <input type="checkbox" name="disciplina[]" value="Português" />Português<br /><br />
            <input type="radio" value="sim" name="pode" />Sim<br />
            <input type="radio" value="não" name="pode" />Não<br /><br />
            <input type="text" name="nome" /><br /><br />
            <textarea name="texto"></textarea><br /><br />
            <input type="submit" />
        </form>
    </body>
</html>

Yan Machado

Yan Machado
Responder

Mais Posts

01/03/2015

Marcio Araujo

Yan, conseguiu sozinho com algum apoio: artigo, video aula?
Responder

01/03/2015

Yan Machado

Dei uma olhada na [url:descricao=Referência PHP Matriz W3Schools]http://www.w3schools.com/php/php_ref_array.asp[/url], por quê? Você tinha alguma proposta?
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar