我是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
我知道问题出在表格动作的某个地方。但我不知道如何改变它。
答案 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
数组不是对象。