Ars*_*lan 3 php codeigniter browser-history
我在Codeigniter中有一个URL为http:// arslan/admin/category/index/0/name/asc/10的页面.在此URL中,uri_segment从中开始0.此(0)是默认的搜索值,name并且asc是默认排序字段和顺序,以及图10是分页索引.
现在,如果我移动到带URL的添加页面(http:// arslan/admin/category/add /),同样如上所述"add"是当前函数.
现在,如果我想通过返回页面的链接返回...我怎样才能将用户转移回去?我不能让URL返回.
有人可以帮帮我吗?
dVw*_*dVw 10
我不确定我是否正确理解了这个问题,如果没有,请忽略我的答案,但我想你想要一个"回到上一页"的链接,类似于网页浏览器中的后退按钮.
如果是这样,您可以使用javascript通过简单地使用此行来解决此问题:
<a href="javascript:window.history.go(-1);">Go back</a>
Run Code Online (Sandbox Code Playgroud)
Ben*_*rne 10
我通过创建扩展了会话类 /application/libaries/MY_Session.php
class MY_Session extends CI_Session {
function __construct() {
parent::__construct();
$this->tracker();
}
function tracker() {
$this->CI->load->helper('url');
$tracker =& $this->userdata('_tracker');
if( !IS_AJAX ) {
$tracker[] = array(
'uri' => $this->CI->uri->uri_string(),
'ruri' => $this->CI->uri->ruri_string(),
'timestamp' => time()
);
}
$this->set_userdata( '_tracker', $tracker );
}
function last_page( $offset = 0, $key = 'uri' ) {
if( !( $history = $this->userdata('_tracker') ) ) {
return $this->config->item('base_url');
}
$history = array_reverse($history);
if( isset( $history[$offset][$key] ) ) {
return $history[$offset][$key];
} else {
return $this->config->item('base_url');
}
}
}
Run Code Online (Sandbox Code Playgroud)
然后检索您调用的最后一页访问的URL
$this->session->last_page();
Run Code Online (Sandbox Code Playgroud)
并且您也可以增加返回的信息的偏移量和类型等
$this->session->last_page(1); // page before last
$this->session->last_page(2); // 3 pages ago
Run Code Online (Sandbox Code Playgroud)
该函数不会将使用Ajax调用的页面添加到跟踪器,但您可以轻松删除该if( !IS_AJAX )位以使其执行此操作.
编辑:如果你运行错误未定义的常量IS_AJAX,假设IS_AJAX添加下面的行 /application/config/constants.php
define('IS_AJAX', isset($_SERVER['HTTP_X_REQUESTED_WITH']) && strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) == 'xmlhttprequest');
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
20493 次 |
| 最近记录: |