01/05/2016

Ajuda com Foreach e Form

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.

Kayo Timoteo

Melhor resposta

02/05/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.

William (devwilliam)

Responder Citar

Outras Respostas

02/05/2016

Wellington Silva

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.
Responder Citar

02/05/2016

Kayo Timoteo

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??
Responder Citar