我需要在此foreach循环中提交所有这些$ _POST值,但是我找不到一种使该工作正常进行的方法,我正在发送一个foreach循环,因为所有字段的名称都像这样=名称=字段名称[1]。
foreach($_POST['pergunta'] as $pergunta, $_POST['tipo'] as $tipoPergunta, $_POST['valor'] as $valor, $_POST['correta'] as $correta)
由于我需要提交所有这些值,因此使此foreach循环起作用的正确方法是什么?
这是表单代码:
<form action="paginas/professor/cadastraAtividade.php" method="post" id="FormAtividades">
<table class="table table-responsive" id="questoes">
<tbody>
<tr>
<td>
<select id="opt1" name="tipo[1]" onchange="checkQuest(this)" class="browser-default">
<option selected="selected" disabled="disabled">Selecione um tipo</option>
<option value="Aberta">Aberta</option>
<option value="Multipla">Múltipla Escolha</option>
<option value="CertoErrado">Certo ou Errado</option>
<option value="Justifica">A primeira justifica a Segunda</option>
</select>
<div id="perg1"><label id="lblP[1]" for="pergunta[1]">Insira a Pergunta</label><input name="pergunta[1]" id="pergA[1]" class="materialize-textarea" style="height: 57px;"></div>
<div id="pergCont1"></div> <label for="valor[1]" class="active">Insira o valor desta Atividade</label> <input type="text" id="valor1" name="valor[1]"></td>
<td><button type="button" name="addPerg" id="addPerg" onclick="addQuestao()">Adicionar Pergunta</button></td>
</tr>
<tr id="coluna2">
<td>
<select id="opt2" name="tipo[2]" onchange="checkQuest(opt2)" class="browser-default">
<option selected="selected" disabled="disabled">Selecione um tipo</option>
<option value="Aberta">Aberta</option>
<option value="Multipla">Múltipla Escolha</option>
<option value="CertoErrado">Certo ou Errado</option>
<option value="Justifica">A primeira justifica a Segunda</option>
</select>
<div id="perg2"></div>
<div id="pergCont2"></div> <label>Insira o valor desta Atividade</label> <input type="text" id="valor2" name="valor[2]"></td>
<td><button type="button" name="remPerg" class="btn_remove" id="2">X</button></td>
</tr>
<tr id="coluna3">
<td>
<select id="opt3" name="tipo[3]" onchange="checkQuest(opt3)" class="browser-default">
<option selected="selected" disabled="disabled">Selecione um tipo</option>
<option value="Aberta">Aberta</option>
<option value="Multipla">Múltipla Escolha</option>
<option value="CertoErrado">Certo ou Errado</option>
<option value="Justifica">A primeira justifica a Segunda</option>
</select>
<div id="perg3"><label for="pergunta">Insira a Pergunta</label><input name="pergunta[3]" id="perg[3]" class="materialize-textarea"></div>
<div id="pergCont3"><label id="lblAlt1M" for="alt1[3]">Alternativa A</label><input type="text" id="alt1M" name="alt1[3]"> <label id="lblAlt2M" for="alt2[3]">Alternativa B</label><input type="text" id="alt2M" name="alt2[3]"> <label id="lblAlt3M" for="alt3[3]">Alternativa C</label>
<input
type="text" id="alt3M" name="alt3[3]"> <label id="lblAlt4M" for="alt4[3]">Alternativa D</label><input type="text" id="alt4M" name="alt4[3]"> <label id="lblAlt5M" for="alt5[3]">Alternativa E</label><input type="text" id="alt5M" name="alt5[3]"> <label id="CM" for="correta[3]">Alternativa Correta</label>
<select
class="browser-default" id="corrM" name="correta[3]">
<option value="A">A</option>
<option value="B">B</option>
<option value="C">C</option>
<option value="D">D</option>
<option value="E">E</option>
</select>
</div> <label>Insira o valor desta Atividade</label> <input type="text" id="valor3" name="valor[3]"></td>
<td><button type="button" name="remPerg" class="btn_remove" id="3">X</button></td>
</tr>
<tr id="coluna4">
<td>
<select id="opt4" name="tipo[4]" onchange="checkQuest(opt4)" class="browser-default">
<option selected="selected" disabled="disabled">Selecione um tipo</option>
<option value="Aberta">Aberta</option>
<option value="Multipla">Múltipla Escolha</option>
<option value="CertoErrado">Certo ou Errado</option>
<option value="Justifica">A primeira justifica a Segunda</option>
</select>
<div id="perg4"><label id="lblPCE" for="pergunta[4]">Insira a Pergunta</label><input name="pergunta[4]" id="perg[4]" class="materialize-textarea"></div>
<div id="pergCont4"><label id="lblCCE" for="correta[4]">Alternativa Correta</label>
<select class="browser-default" name="correta[4]" id="corr[4]">
<option value="Certo">Certo</option>
<option value="Errado">Errado</option>
</select>
</div> <label>Insira o valor desta Atividade</label> <input type="text" id="valor4" name="valor[4]"></td>
<td><button type="button" name="remPerg" class="btn_remove" id="4">X</button></td>
</tr>
<tr id="coluna5">
<td>
<select id="opt5" name="tipo[5]" onchange="checkQuest(opt5)" class="browser-default">
<option selected="selected" disabled="disabled">Selecione um tipo</option>
<option value="Aberta">Aberta</option>
<option value="Multipla">Múltipla Escolha</option>
<option value="CertoErrado">Certo ou Errado</option>
<option value="Justifica">A primeira justifica a Segunda</option>
</select>
<div id="perg5"><label id="lblPerg1" for="perg1[5]">Insira a Primeira Pergunta</label><input type="text" id="perg1J" name="perg1[5]"> <label id="lblPerg2" for="perg2[5]">Insira a Segunda Pergunta</label><input type="text" id="perg2J" name="perg2[5]"></div>
<div id="pergCont5"><label id="lblCorrJ" for="correta[5]">Alternativa Correta</label>
<select class="browser-default" id="corrJ" name="correta[5]">
<option value="A">As duas afirmações são verdadeiras, e a segunda justifica a primeira.</option>
<option value="B">As duas afirmações são verdadeiras, e a segunda não justifica a primeira.</option>
<option value="C">A primeira afirmação é verdadeira, e a segunda é falsa.</option>
<option value="D">A primeira afirmação é falsa, e a segunda é verdadeira.</option>
<option value="E">As duas afirmações são falsas.</option>
</select>
</div> <label>Insira o valor desta Atividade</label> <input type="text" id="valor5" name="valor[5]"></td>
<td><button type="button" name="remPerg" class="btn_remove" id="5">X</button></td>
</tr>
</tbody>
</table>
<i class="btn waves-effect waves-light gradient-45deg-light-blue-indigo waves-input-wrapper" style=""><input class="waves-button-input" type="submit" value="Enviar"></i>
</form>
答案 0 :(得分:2)
您不能只是将一堆数组捕捉到foreach
。您必须执行以下操作:
for ($i = 0; $i < count($_POST['pergunta']); ++$i)
{
$pergunta = $_POST['pergunta'][$i];
$tipoPergunta = $_POST['tipo'][$i];
$valor = $_POST['valor'][$i];
$correta = $_POST['correta'][$i];
// do stuff
}
或者如果您绝对要使用foreach
:
foreach ($_POST['pergunta'] as $i => $pergunta)
{
$tipoPergunta = $_POST['tipo'][$i];
$valor = $_POST['valor'][$i];
$correta = $_POST['correta'][$i];
// do stuff
}
此外,对您来说,客户告诉您正确的答案是不是很傻?此信息应保密。