在Codeigniter中创建后台链接

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)