使用 PHP DOM 获取提交的值

get submitted values with PHP DOM

我想获取属于测试答案的值。 可能有任何问题。 一个问题有 HTML:

<form method='post' action='calificar.php'>

<div class='pruebaAlumno'>

    <h5>Pregunta 3</h5>
    <h3>¿Que factores definen la capacidad de una persona?</h3>

    <input type='checkbox' name='respuestaAlumno[]' 
                      value='Voluntad'> Voluntad <br>
    <input type='checkbox' name='respuestaAlumno[]' 
                      value='Cultura'> Cultura <br>
    <input type='checkbox' name='respuestaAlumno[]' 
                      value='Hábitos'> Hábitos <br>
    <input type='checkbox' name='respuestaAlumno[]' 
                      value='Habilidad'> Habilidad <br>
    <input type='checkbox' name='respuestaAlumno[]' 
                      value='Perfil'> Perfil <br>
    <input type='checkbox' name='respuestaAlumno[]' 
                      value='Dones'> Dones <br>

    <input type='hidden' name='idPregunta' value='41'>
    <input type='hidden' name='tipo' value='C'>
             </fieldset>

            </div>  <div class='calificar'>
                    <input type='submit' name='calificar' value='enviar' >
                </div>
            </form>

我想得到

  1. 回答(respuestaAlumno)
  2. 问题 ID (idPregunta)
  3. 类型(类型)

来自每个问题。

那我想把数据存到一个数组里

一个测试可以有多少问题,只要老师想要。表单有一个提交按钮。

我尝试过以不同的方式获取数据。使用 JS DOM。使用 POST。 我找到了一些 PHP DOM 教程,但它们都教如何修改静态 HTML.
请帮助我从每个字段集中获取提交的数据。 提前致谢。

您可以像这样格式化您的表单名称。

第一题

name="respuestaAlumno[0][]"
name="respuestaAlumno[0][]"
...
name="idPregunta[0]"
name="tipo[0]"

第二个问题

name="respuestaAlumno[1][]"
name="respuestaAlumno[1][]"
...
name="idPregunta[1]"
name="tipo[1]"

您最终会在 $_POST 中得到三个数组。

试试这个

 <?php 
 if(isset($_POST['calificar'])
 {

 $respuestaAlumno=$_POST['respuestaAlumno'];
 //you need respuestaAlumno array to single string
 echo $data_to_string=implode(",",$respuestaAlumno);
 $count_of_respuestaAlumno=count($_POST['respuestaAlumno']);
 for($i=0;$i<=$count_of_respuestaAlumno-1;$i++)
 {
 echo $data=$respuestaAlumno[$i]."/n";
 }
 //question id
echo  $idPregunta=$_POST['idPregunta'];
 echo $tipo=$_POST['tipo'];
 //do something 
 }