Codeigniter从选择下拉列表中删除数据库数据

时间:2017-04-27 12:49:55

标签: php mysql codeigniter

我是codeigniter和PHP的新手,我试图制作一个选择表单,我可以使用提交按钮从数据库中删除考试。

这些是我的代码行:

查看(examselect_view.php)

<form name='selectexam' action="<?php echo base_url() . "index.php/exam/removeExam/" . $exams->exam_id; ?>" method='post'>   
   <select class="form-control">
        <?php 
        foreach($exams as $row)
        { 
          echo '<option value="'.$row->exam_id.'">'.$row->examname.'</option>';
        }
        ?>
    </select>
    <input type="submit" name="delete" value="Verwijderen" class="btn btn-info" />
</form>

控制器(Exam.php)

function removeExam($id) {
// uri segment 3 = index.php/exam/examName/NUMBER OF ID
$id = $this->uri->segment(3);   
$this->exam_model->removeExam($exam_id);
}

模型(Exam_model.php)

function removeExam($id){
$this->db->where('exam_id', $id);
$this->db->delete('exam');
}

这是我从我的观点中得到的错误。

Message: Trying to get property of non-object

我知道问题出在表格动作的某个地方。但我不知道如何改变它。

2 个答案:

答案 0 :(得分:0)

我现在无法测试。但有些事情应该有效。

在您看来,使用以下表单:

<form name='selectexam' action="<?php echo base_url() . "index.php/exam/remove/";?>" method='post'>   
   <select class="form-control" name="exam_id">
        <?php 
        foreach($exams as $row)
        { 
          echo '<option value="' . $row->exam_id . '">' . $row->examname . '</option>';
        }
        ?>
    </select>
    <input type="submit" name="delete" value="Verwijderen" class="btn btn-info" />
</form>

在您的控制器中:

function remove() {

    if($_SERVER['REQUEST_METHOD'] == 'POST'){
        $exam_id = $_POST['exam_id'];   
        $this->exam_model->removeExam($exam_id);

        redirect('/exam/');
    }
}

作为一般规则,永远不要仅基于URL进行破坏性更改。如果您不小心,网站索引机器人(例如谷歌)可能会意外删除您的所有考试。

答案 1 :(得分:0)

您遇到<?php echo base_url() . "index.php/exam/removeExam/" . $exams->exam_id; ?>问题可能是您的$exams数组不是对象。