Array
(
    [0] => stdClass Object
        (
            [Votos_Balanceados] => 1
            [id] => 552918
            [titulo] => Ajuda com Foreach e Form
            [dataCadastro] => DateTime Object
                (
                    [date] => 2016-05-02 08:27:21
                    [timezone_type] => 3
                    [timezone] => America/Sao_Paulo
                )

            [isFirstPost] => -1
            [idUsuario] => 269142
            [status] => A
            [isExample] => 
            [NomeUsuario] => William 
            [Apelido] => William (Devwilliam)
            [Foto] => 269142_20150809195205.jpg
            [Conteudo] => Colega Kayo por gentileza utilize a tag CODE, para postar trechos de código fonte!

Como o colega Wellington já citou, você está criando um form para cada interação do foreach, o correto é criar o form antes do loop e fechar após o finalização. ) )

Ajuda com Foreach e Form

Kayo Timoteo
   - 01 mai 2016

Estou com um Duvida.
Teria como transformar isso em um FORM só? e Enviar tudo de uma vez?
Pois do jeito que ta cada linha da um form.
E responder esse formulário ficaria bem cansativo.
----------------------------------------------------------------------
FORM:
<table class="table table-hover table-bordered">
<tr>
<td><b>Nome</b></td>
<td><b>Presença</b></td>
<?php
$alunos = buscaAlunos ($conexao, $turma);
foreach ($alunos as $aluno) :
?>
</tr>
<tr>
<td><?= $aluno['nome']?></td>
<td><form class="form" action="cria_pt.php" method="post">
<input class="hidden" name="id_aluno" value="<?= $aluno['id']?>">
<input class="hidden" name="dia_freq" value="<?= $dia_freq ?>">
<div class="radio-inline">
<label><input type="radio" value="1" name="pt">Presente</label>
</div>
<div class="radio-inline">
<label><input type="radio" value="0" name="pt">Ausente</label>
</div>
<button type="submit" class="btn btn-success">Enviar</button>
</form></td>
</tr>
<?php
endforeach
?>
</table>
-----------------------------------------
RECEBE FORM
$id_aluno = $_POST['id_aluno'];
$id_turma = $_POST['id_turma'];
$dia_freq = $_POST['dia_freq'];
$pt = $_POST['pt'];
if(criaFreqPt($conexao, $id_aluno, $id_turma, $dia_freq, $pt)) {
echo "Frequencia Adicionada";
}else{
echo "Frequencia Nao Foi Adicionada";
}
?>
----------------------------------------------
FUNÇÂO INSERE
function criaFreqPt($conexao, $id_aluno, $id_turma, $dia_freq, $pt){
$query = "insert into frequencia (id_aluno, id_turma, dia_freq, pt) values ('{$id_aluno}', '{$id_turma}', '{$dia_freq}', '{$pt}')";
return mysqli_query($conexao, $query);
}
Obrigado.

Post mais votado

William (devwilliam)
   - 02 mai 2016

Colega Kayo por gentileza utilize a tag CODE, para postar trechos de código fonte!

Como o colega Wellington já citou, você está criando um form para cada interação do foreach, o correto é criar o form antes do loop e fechar após o finalização.

Wellington Silva
   - 02 mai 2016

já tentou abrir a tag form antes do foreach? na hora de fechar, depois do foreach.

não se esqueça de acrescentar nos name dos inputs os colchetes [], dessa forma na hora de trantar a função de inserir no banco de dados e preciso um novo foreach.

Kayo Timoteo
   - 02 mai 2016

Olá. Desculpe pensei que o Código com CODE ia fica tudo em uma linha conforme na visualização.
Ok abro o form antes e como fica pra receber esses dados??