我想制作一个删除功能,但我不知道哪些步骤出错了?
这是文件模型:
function delete()
{
$this->db->delete('ns_categories', array('cat_id' => $cat_id));
}
控制器:
function delete()
{
$this->cat_model->delete();
$cat_id=$this->uri->segment(3);
if($cat_id->delete()) return json_encode(array("success" => true));
}
查看:
<td class="centeralign"><a class="deleterow" href="<?php echo anchor('admin/categories/delete' .<?php echo $row['cat_id']; ?>"><span class="icon-trash"></span></a></td>
请帮帮我。
答案 0 :(得分:1)
你没有做任何正确的事,没有冒犯。这是一团糟。
查看:
你错过了正斜杠:
href="<?php echo 'admin/categories/delete' .<?php echo $row['cat_id']; ?>"
^^^
...但是你不会以这种方式使用anchor()
,它会生成一个完整的链接。而且你已经嵌套了两个<?php echo
...真糟糕。这样做:
<a href="<?php echo base_url('admin/categories/delete/'.$row['cat_id']; ?>">
型号:
您尚未在模型的$cat_id
函数中定义delete
。另外,不要从模型返回json。这样做:
function delete($cat_id = null)
{
return $this->db->delete('ns_categories', array('cat_id' => $cat_id));
}
控制器:
您正在调用delete
作为$cat_id
的方法,这是没有意义的,因为变量包含数字 - 而不是您可以调用方法的对象。你还必须回显/打印json,你应该设置json头。这样做:
function delete($cat_id = null) {
$status = $this->cat_model->delete($cat_id);
header('Content-type: application/json');
echo json_encode(array("success" => $status));
}
您应该使用POST方法删除内容,否则人们可能会意外删除内容或执行<img src="delete/item/1">
等愚蠢的伎俩
答案 1 :(得分:0)
从链接中删除额外的回显:
<td class="centeralign">
<a class="deleterow" href="<?php echo anchor('admin/categories/delete' . $row['cat_id']); ?>">
<span class="icon-trash"></span>
</a>
</td>
答案 2 :(得分:0)
在您的Controller删除功能中,您在调用模型的删除功能后获得了类别ID为什么?在您的模型函数中,您将获得$cat_id
??它应该是这样的
function Category_delete(){
$cat_id=$this->uri->segment(3);
if($this->cat_model->delete($cat_id)) return json_encode(array("success" => true));
}
在您的视图中,您再次打开了<?php
,并且您在anchor
href
函数中使用anchor
函数生成了完整的<a>
标记,请参阅帮助者CI Helpers
<td class="centeralign"><a class="deleterow" href="<?php echo site_url('admin/categories/Category_delete/'.$row['cat_id']; ?>">
<span class="icon-trash"></span></a></td>
你应该重命名这些函数,因为delete可能是一个关键字,所以使用函数的普通名称