^淡如清风 发表于 2014-11-3 12:00:47

分页下删除记录时?如何使得删除后跳转到当前分页下

本帖最后由 ^淡如清风 于 2014-11-3 15:07 编辑

使用CI开发程序时,经常会遇到删除记录的操作。
这时如果是在分页下删除,且删除后必须返回当前分页,而不是跳到分页的首页时如何做呢?
例如:
列表控制器:/application/controllers/article.php   index()方法
模板文件:/application/views/article/index.php
删除操作:/application/controllers/article.php      dodel()方法

我们在如下链接的操作页面删除数据
当前页面URL:
/index.php/article/index?page=10&title=查询的关键词

对应的删除链接为:
/index.php/article/dodel?id=102
/index.php/article/dodel?id=102

如何使得执行删除操作后,跳转到(redirect)
/index.php/article/index?page=10&title=查询的关键词

方法一:
删除链接附带参数,实现删除后跳转

1、模板文件 构造删除链接
模板文件:/application/views/article/index.php
<?php
foreach ($articles as $arc) {
    //删除url(附加的参数)
    $query_string = $_SERVER['QUERY_STRING'] ? '&' . $_SERVER['QUERY_STRING'] : '';
?>
    <a href="<?php echo site_url('article/dodel?id=' . $arc['id'] . $query_string); ?>">删除</a>
<?php
}
?>

2、点击删除后控制器处理
/**
* 删除招标数据
*/
public function dodel()
{
    TODO:数据库删除

    //跳转
    parse_str($_SERVER['QUERY_STRING'], $output);
    if (isset($output['id'])) unset($output['id']);
    $query_string = http_build_query($output);
    redirect('article/index?' . $query_string);
}



方法二:
进入列表页时,使用CI的SESSION保存跳转参数

列表控制器:/application/controllers/article.php

1、index()方法

/**
* 文章列表
*/
public function index()
{
      $this->load->library('session');
      //记录删除跳转查询字符串
      $dodel_query_string = $_SERVER['QUERY_STRING'] ? '&' . $_SERVER['QUERY_STRING'] : '';
      $this->session->set_userdata('dodel_query_string', $dodel_query_string);
      
      //TODO:其他逻辑,例如获取文章列表
      //$data['articles'] = ....;
      
      $this->load->view('article/index', $data);
}

2、删除方法 dodel()
/**
* 文章删除操作
*/
public function index()
{
      //TODO:数据库删除操作

      $this->load->library('session');
      parse_str($this->session->userdata('dodel_query_string'), $output);
      if (isset($output['id'])) unset($output['id']);
      $query_string = http_build_query($output);
      redirect('admin/zhaobiao/index?' . $query_string);
}

继续补充1:可以把删除操作那块的跳转的代码转换成函数写到url_helper里面去,要用时再调用!


看不明白尽管提问,这几天我会时不时回来查看下每个楼层的回复。
有更好的方法,欢迎以回复的方式或另开帖的方式发布。我同时整理到该帖子下

Hex 发表于 2014-11-3 12:24:47

千万不要太监了。。。。。哈哈 期待

杰克船长5 发表于 2014-11-3 14:19:56

{:soso_e128:}

^淡如清风 发表于 2014-11-3 15:05:05

Hex 发表于 2014-11-3 12:24
千万不要太监了。。。。。哈哈 期待

早上写着写着给美眉叫走,回来时到中午,于是回家吃饭睡觉,下午继续
页: [1]
查看完整版本: 分页下删除记录时?如何使得删除后跳转到当前分页下