我有一些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>