我正在尝试创建一个表单以在大学中插入学生标记..我有一个包含所有学生ID的列表和带有标记的表单..这是我的表单:
<input type="hidden" name="id[]" value="{$student.id}" />
<input type="text" name="mark[]" size="5" />
当然字段在表单中重复,但问题是当我试图打印结果时,这是我的代码
foreach ($_POST as $student){
echo $student['id'].$student['mark'];
}
但是当我提交表格时我得到了这个:
未定义的索引:id 未定义的索引:标记
我的代码PLZ有什么问题?
答案 0 :(得分:2)
如果$student.id
是唯一的,那么您应该考虑以下内容:
<input type="text" name="mark[{$student.id}]" size="5" />
这会在php端给你一个类似于
的结果Array
(
[mark] => Array
(
[studentID1] => 14
[studentID2] => 60
[studentID3] => 89
)
)
因此在php中你可以这样做:
foreach($_POST['mark'] as $studentID => $mark){
echo "The student". $studentID ." achieved mark: ". $mark;
}
答案 1 :(得分:0)
foreach ($_POST['id'] as $key => $studentId){
echo $student['id'][$key].$student['mark'][$key];
}
当您声明name =“id []”时,您正在处理数组。 如果您在发布之前在表单上有两个名称“id []”,则会将其发布为:
array(
'id' => array(
'0' => '',
'1' => '',
);
);
然后你应该使用
foreach ($array['id'] as $key => $value) {
echo $array['id'][$key]; //got value
echo $array['name'][$key]; //got custom value
}
答案 2 :(得分:0)
鉴于你的形式,你想要这样的东西:
foreach ($_POST['id'] as $key => $id){
echo $id. $_POST['mark'][$key];
}