我是一名试图开发学生成绩应用程序的低级代码爱好者。一旦输入所有科目的分数,它将捕获每个科目的个别学生分数并生成综合报告表格。
如果有规定为班级中的所有学生输入学生成绩并一次发布所有学生(更新所有按钮)而不是单独发布每个学生成绩(更新按钮),这将简化教师的工作。这就是我的困境所在。
学生成绩单表格
在我的控制器中,更新代码为:
DBPROP COMMANDTIMEOUT
更新按钮正常工作。我似乎没有概念化如何使'全部更新'工作。请帮忙。
if ($this->input->post('operation') == 'update') {
$data['mark_obtained'] = $this->input->post('mark_obtained');
$data['mark_total'] = $this->input->post('mark_total');
if($data['mark_obtained']<=$data['mark_total'] && $data['mark_obtained']>=0){
$this->db->where('mark_id', $this->input->post('mark_id'));
$this->db->update('mark', $data);
}
答案 0 :(得分:0)
只是抬头,这是我的第一个回答,所以我提前为格式化/破坏规则道歉。
扩展Hassan ALi的评论。您应该发布一组值而不是单个值。
Codeigniter具有以下功能: “要返回多个POST参数的数组,请将所有必需的键作为数组传递。$ this-&gt; input-&gt; post(array('field1','field2'));” https://www.codeigniter.com/user_guide/libraries/input.html
我会考虑在创建数组时使用mark_id作为键。 例如,如果你有一个名为$ marks_obtained_array的数组,那么你可以插入键值对'id' - &gt; '标记'。
然后,如果你还有一个mark_id的数组,那么你可以在控制器中轻松地遍历它们以进行更新。
if ($this->input->post('operation') == 'update_all') {
foreach($mark_ids_array as $mark_id){
$data['mark_obtained'] = $marks_obtained_array[$mark_id];
$data['mark_total'] = $marks_total_arry[$mark_id];
if($data['mark_obtained']<=$data['mark_total'] && $data['mark_obtained']>=0){
$this->db->where('mark_id', $mark_id);
$this->db->update('mark', $data);
}
....
}