1

首先,我需要向您解释我在做什么:

注意:这个项目正在使用codeigniter框架

我有一个view标题和标签:

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>Backend-Vihara Dharma Bhakti</title>
<link href="../../../style/style_backend.css" rel="stylesheet" type="text/css">
<link href="<?php echo base_url(); ?>style/style_backend.css" rel="stylesheet" type="text/css">
<link rel="stylesheet" href="<?php echo base_url(); ?>jquery/jquery-ui-1.10.2.custom/css/ui-lightness/jquery-ui-1.10.2.custom.min.css" />
<script language="javascript" type="text/javascript" src="<?php echo base_url(); ?>jquery/jquery-ui-1.10.2.custom/js/jquery-1.9.1.js"></script>
<script language="javascript" type="text/javascript" src="<?php echo base_url(); ?>jquery/jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.min.js"></script>

<script>
  $(function() {
    $( "#datepicker" ).datepicker();
  });

  $(function() {
    $( "#tabs" ).tabs();
  });
</script>

<div id="header"><h1>HEADER</h1></div>
    <div id="tabs">
        <ul>
            <li><a href="backend/umat">Daftar Umat</a></li>
            <li><a href="backend/pengurus">Daftar Pengurus</a></li>
            <li><a href="backend/absensi">Absensi</a></li>
        </ul>
    </div>
</head>

请注意,我使用选项卡在标题和选项卡下方加载不同的内容(controller) 。

对于controller标题和选项卡:

<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');

class Backend_home extends CI_Controller {
    public function index()
    {
        $this->load->view('template/header_v');
    }
}

然后,我有另一个view来显示内容(我将使用第一个链接(backend/umat)作为示例)

<body>
    <link rel="stylesheet" href="<?php echo base_url(); ?>jquery/jquery-ui-1.10.2.custom/css/ui-lightness/jquery-ui-1.10.2.custom.min.css" />
    <script language="javascript" type="text/javascript" src="<?php echo base_url(); ?>jquery/jquery-ui-1.10.2.custom/js/jquery-1.9.1.js"></script>
    <script language="javascript" type="text/javascript" src="<?php echo base_url(); ?>jquery/jquery-ui-1.10.2.custom/js/jquery-ui-1.10.2.custom.min.js"></script>

    <script>
      $(function() {
        $( "#datepicker" ).datepicker();
      });
     </script>

    <div id="form_search">
        <?php echo form_open('backend/index') ?>
            <!--<p>
                <?php echo form_dropdown('ddl_search', $data_search, 'id="ddl_search"');?>
            </p>-->
            <p>
                Kelas :
                <?php echo form_dropdown('ddl_kelas1', $list_kelas, 'id="ddl_kelas1"');?> -
                <?php echo form_dropdown('ddl_kelas2', $list_kelas, 'id="ddl_kelas2"');?>
            </p>
            <p>
                Nama : <?php echo form_input('txt_nama');?>
                Alamat : <?php echo form_input('txt_alamat');?>
                Tanggal Lahir : <input type="text" id="datepicker" />
            </p>
                <?php echo form_submit('btn_search', 'Search');?>
        <?php echo form_close(); ?>
    </div>
    <div>
        <?php echo $table ?>
        <?php echo $pagination ?>
    </div>
</body>
</html>

它的controller

public function umat() {
        //check authorization
        if(!isset($_SESSION['username']))
            redirect('backend');

        //pagination
        $config['base_url'] = site_url('/backend/umat/');
        $config['total_rows'] = $this->backend_m->count_umat();
        $config['per_page'] = 10; 
        $config['uri_segment'] = 3;
        $config['full_tag_open'] = '<div id="pagination">';
        $config['full_tag_close'] = '</div>';

        $this->pagination->initialize($config); 

        $data['pagination'] = $this->pagination->create_links();

        //table     
        $data_umat = $this->backend_m->get_umat();

        $this->table->set_heading(
            'No',
            'Nama',
            'Kelas',
            'Alamat',
            'Sekolah',
            'Nomor Telepon',
            'Keterangan'        
        );

        $no = 1;
        foreach($data_umat as $list_temp) 
        {
            $this->table->add_row(
                $no++,
                $list_temp->nama,
                $list_temp->kelas,
                $list_temp->alamat,
                $list_temp->sekolah,
                $list_temp->no_tlpn,
                $list_temp->keterangan
            );
        }


        //masukkan data dari DB ke DDL
        $data_kelas = $this->backend_m->get_kelas();

        $data['list_kelas'][0] = 'Pilih Kelas';

        foreach($data_kelas as $row)
        {
            $data['list_kelas'][$row->kelas_id] = $row->kelas;
        }

        /*$data_search = array('kelas' => 'Kelas', 
                             'nama' => 'Nama',
                             'alamat' => 'Alamat',
                             'bulan' => 'Bulan Lahir');*/

        $data['table'] = $this->table->generate();

        $this->load->view('backend/umat_v', $data);
    }

请注意,我在此控制器中使用分页。

主要问题

因为我view在我的页面中使用了 2 个不同的(html),所以url将跟随标题(标签)之一。它urlhttp://localhost/ci_gabdb/index.php/backend_home

一切正常,直到我单击分页索引的第二页。url将更改为,它使我的http://localhost/ci_gabdb/index.php/backend/umat/10页面丢失了它的 CSS 和标题(标签)。

屏幕截图

我点击任何分页之前(分页索引在下面,我不包括它,所以你可以看到标题和标签):(http://localhost/ci_gabdb/index.php/backend_home

在此处输入图像描述

我点击我的分页索引的第二页之后:(http://localhost/ci_gabdb/index.php/backend/umat/10

在此处输入图像描述

很抱歉,很长的帖子:D 如果您对此问题有任何解决方案,请帮助我,我不介意大量更改我的代码

4

1 回答 1

2

您需要重新考虑如何制作模板。我也使用模板,您需要做的就是将视图传递给模板。

基本示例。

模板页面:

$this->load->view('header');
$this->load->view('content',$main_content);
$this->load->view('footer');

然后在每个页面的控制器中执行以下操作:

$data['main_content'] = 'umat';
$this->load->view('template',$data);

所以基本上你要做的是你加载的每个页面都将加载模板文件,特定页面将通过 $data 传递到该模板中的正确位置。

这样您就不必尝试从每个控制器函数传递多个视图,也不必担心现在分页需要单个 url 的问题。

如果我理解您的问题正确地重新处理您的页面以像这样加载应该可以解决您的问题。

于 2013-04-06T12:50:27.167 回答