-2

我想做一个删除功能,但不知道哪一步做错了?

这是文件模型:

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>

请帮我。

4

3 回答 3

1

你没有做对任何事,没有冒犯。一团糟。

看法:

你在这里错过了一个正斜杠:

href="<?php echo 'admin/categories/delete' .<?php echo $row['cat_id']; ?>"
                                        ^^^

...但是无论如何您都不要使用anchor()这种方式,它会生成整个链接。而且你已经嵌套了两个<?php echos......真是一团糟。像这样做:

<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">

于 2013-06-08T18:26:11.340 回答
0

从链接中删除额外的回声:

<td class="centeralign">
    <a class="deleterow" href="<?php echo anchor('admin/categories/delete' . $row['cat_id']); ?>">
        <span class="icon-trash"></span>
    </a>
</td>
于 2013-06-08T18:22:12.097 回答
0

在您的控制器删除功能中,您在调用模型的删除功能后获得了类别 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 帮助者的参考

<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 可能是一个关键字,所以使用函数的普通名称

于 2013-06-08T18:23:08.783 回答