分页下删除记录时?如何使得删除后跳转到当前分页下
本帖最后由 ^淡如清风 于 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里面去,要用时再调用!
看不明白尽管提问,这几天我会时不时回来查看下每个楼层的回复。
有更好的方法,欢迎以回复的方式或另开帖的方式发布。我同时整理到该帖子下 千万不要太监了。。。。。哈哈 期待 {:soso_e128:} Hex 发表于 2014-11-3 12:24
千万不要太监了。。。。。哈哈 期待
早上写着写着给美眉叫走,回来时到中午,于是回家吃饭睡觉,下午继续
页:
[1]