使用codeigniter分页在最终URL中插入#anchor

时间:2015-10-13 08:51:37

标签: codeigniter pagination anchor codeigniter-3

我在codeigniter中有一个问题。

我的分页在一个#section中,当我更改页面重新加载标题时,我需要在最终网址中添加#anchor

此刻我的网址是:

  

http://localhost/php_focas/index.php?per_page=3

我需要这个:

  

http://localhost/php_focas/index.php?per_page=3#agenda

我的控制者:

$urlPaginacao = site_url();

//PAGINAÇÃO *****

    $get_total_results = $this->admin_model->mostrarAgenda();
    $totalResultados = $get_total_results['total'];
    $getPaginacao = $this->paginacao($urlPaginacao,$totalResultados, 3);

    $getEventos = $this->admin_model->mostrarAgenda($getPaginacao['inicio'], $getPaginacao['quantidadeResultados']);

    $data['district'] = $this->admin_model->mostrarDistrict();
    $data['local'] = $this->admin_model->mostrarLocal();
    $data['life'] = $this->admin_model->mostrarLife();
    $data['useful'] = $this->admin_model->mostrarUseful();
    $data['agenda'] = $getEventos['dadosGerais']; //dados gerais do model
    $data['pag'] = $getPaginacao['paginacao'];

    $this->load->view('index', $data);

}

public function paginacao($urlPaginacao, $totalResultados, $resultadosPorPagina = 3){

    $config['base_url'] = $urlPaginacao;
    $config['total_rows'] = $totalResultados;
    $config['per_page'] = $resultadosPorPagina;
    $config['page_query_string'] = TRUE;

    $config['full_tag_open'] = "<ul class='pagination pagination-sm'>";
    $config['full_tag_close'] ="</ul>";
    $config['num_tag_open'] = '<li>';
    $config['num_tag_close'] = '</li>';
    $config['cur_tag_open'] = "<li class='active disable'><a>";
    $config['cur_tag_close'] = "</a></li>";
    $config['next_tag_open'] = "<li>";
    $config['next_tagl_close'] = "</li>";
    $config['prev_tag_open'] = "<li>";
    $config['prev_tagl_close'] = "</li>";
    $config['first_tag_open'] = "<li>";
    $config['first_tagl_close'] = "</li>";
    $config['last_tag_open'] = "<li>";
    $config['last_tagl_close'] = "</li>";

    $config['first_link'] = TRUE;
    $config['last_link'] = TRUE;

    $quantidade = $resultadosPorPagina;
    $this->pagination->initialize($config);

    $data['quantidadeResultados'] = $quantidade;
    $data['inicio'] = $this->input->get('per_page') != NULL ? $this->input->get('per_page') : '0';
    $data['paginacao'] = $this->pagination->create_links();
    return $data;

}

这是我的模特:

public function mostrarAgenda($inicio=NULL, $quantidade=NULL){

    $inicio = $inicio != NULL ? "LIMIT {$inicio},{$quantidade}" : "";

    $sqlGeral = "SELECT * FROM tblagenda {$inicio}";

    $queryGeral = $this->db->query($sqlGeral);
    $data['inicio'] = $inicio;
    $data['total'] = $queryGeral->num_rows();
    $data['dadosGerais'] = $queryGeral->result();

    return $data;
}

1 个答案:

答案 0 :(得分:3)

解决方案是在我的控制器中在函数pagination()中添加以下代码:

$config['suffix'] = '#agenda';

希望这将有助于将来。