将输入类型文本放入数组中


put input type text in an array

我有一些text inputs。CCD_ 2由CCD_ 3循环产生。现在我想把values放在一个数组中。像这样:

array       values
mark['0']   input1
mark['1']   input2
mark['2']   input3

我试过了,但没用。

while($row=mysql_fetch_array($result)){
  <form class="form1" name="form1" method="post">
    <input type="text" name="mark[]"/>
  </form>
}
<form class="form1" name="form1" method="post">
    <button type="submit" name="correction"></submit>
</form>

然后

if(isset($_POST['correction'])){
$grade=0;   
    $mark=$_POST['mark'];
    foreach($mark as $key =>$value ){
        $grade+=$value;
    }   
print $grade;
}

我得到这些错误:

Notice: Undefined index: mark in C:'xampp'htdocs'virtual_exam'handy_correction.php on line 37
Warning: Invalid argument supplied for foreach() in C:'xampp'htdocs'virtual_exam'handy_correction.php on line 38

问题可能是由两个相互不连接的表单引起的,如果是,如何将它们连接起来?如果没有,如何做我想做的事?

您可能只有一个表单元素,而不是每一行都有一个,当然也不是表单提交按钮有一个单独的元素。

您的问题是,您提交的实际表单中只有一个元素——提交按钮。因此,根本没有要发布的输入字段。

你应该生成这样的表单:

<form class="form1" name="form1" method="post">
<?php
while($row=mysql_fetch_array($result)){
?>
    <input type="text" name="mark[]"/>
<?php
}
?>
    <button type="submit" name="correction"></submit>
</form>

将表单更改为:

<form class="form1" name="form1" method="post">
  <?php
    while ($row = mysql_fetch_array($result)) {
      echo '<input type="text" name="mark[]" />';
    }
  ?>
  <input type="submit" name="correction" value="Submit" />
</form>

然后:

if (isset($_POST['correction'])) {
  $grade = 0;   
  $mark  = $_POST['mark'];
  foreach ($mark as $key => $value) {
    $grade += $value;
  }
  echo $grade;
}

您所说的最后一段是正确的,您提交的表单1只包含提交按钮,因此处理POST的PHP脚本中不存在mark

所以将HTML更改为:

<form class="form1" name="form1" method="post">
<?php
while($row=mysql_fetch_array($result)){
?>
    <input type="text" name="mark[]"/>
<?php
}
?>
    <button type="submit" name="correction"></submit>
</form>