首页 > 解决方案 > Codeigniter - 将教师仅限于他们所教的科目

问题描述

我有一个表格,可以让老师给他们的学生寄作业。对于每位教师来说,仅限于他们所教的课程和科目是至关重要的。

但是,当老师想要提交或搜索作业时,他们可以查看该课程的所有科目。就隐私而言,这确实是有问题的客栈。曾有老师不小心删除其他老师的作业的案例。

我想通过允许教师只查看他们所教的科目来防止这一切。

在此处输入图像描述

看法

<div class="col-sm-4">
<div class="form-group">
<label for="pwd"><?php echo $this->lang->line('subject') ?></label><small class="req"> *</small>
<select class="form-control" name="modal_subject_id" id="modal_subject_id">
<option value=""><?php echo $this->lang->line('select') ?></option>

</select>
<span id="name_add_error" class="text-danger"><?php echo form_error('modal_subject_id'); ?></span>
</div>
</div>

我认为这是脚本

 $(document).ready(function (e) {

        getSectionByClass("<?php echo $class_id ?>", "<?php echo $section_id ?>", 'secid');

        getSubjectGroup("<?php echo $class_id ?>", "<?php echo $section_id ?>", "<?php echo $subject_group_id ?>", 'subject_group_id')
        getsubjectBySubjectGroup("<?php echo $class_id ?>", "<?php echo $section_id ?>", "<?php echo $subject_group_id ?>", "<?php echo $subject_id ?>", 'subid');

修改的

教师与他们在 subject_timetable 中教授的科目相关联

主题时间表

CREATE TABLE `subject_timetable` (
  `id` int(11) NOT NULL,
  `day` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  `class_id` int(11) DEFAULT NULL,
  `section_id` int(11) DEFAULT NULL,
  `subject_group_id` int(11) DEFAULT NULL,
  `subject_group_subject_id` int(11) DEFAULT NULL,
  `staff_id` int(11) DEFAULT NULL,
  `time_from` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  `time_to` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  `room_no` varchar(20) CHARACTER SET latin1 DEFAULT NULL,
  `session_id` int(11) DEFAULT NULL,
  `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

模型

 public function get($id)
    {

        $this->db->select('subject_timetable.*,subject_group_subjects.subject_id,subjects.name,subjects.code,subjects.type');
        $this->db->from('subject_timetable');
        $this->db->join('subject_group_subjects', 'subject_timetable.subject_group_subject_id = subject_group_subjects.id');
        $this->db->join('staff', 'staff.id = subject_timetable.staff_id');
        $this->db->join('subjects', 'subjects.id = subject_group_subjects.subject_id');
        $this->db->where('subject_timetable.id', $id);
        $query = $this->db->get();
        return $query->row();
    }

标签: javascriptphphtmlcodeigniter

解决方案


为此,您必须在选择每个选择选项后使用所选值作为您的条件进行 ajax 调用。


推荐阅读