使用jquery选项卡时,标题显示两次

时间:2013-04-02 13:52:50

标签: php jquery html codeigniter header

我遇到了一个奇怪的错误(我使用 codeigniter ),标题和jquery标签显示两次:

enter image description here

这是我的header_v,jquery标签的位置:

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

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

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

这是umat_v,即点击第一个标签时将加载的视图:

<body>
    <div id="form_search">
        <?php echo form_open('backend/index') ?>
            <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>

这是我用来加载这些视图的controller

public function umat() {
    $this->load->view('template/header_v');
    //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
        );
    }


    $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['table'] = $this->table->generate();

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

为什么我的标题/ header_v总是加载2次?谢谢:D

1 个答案:

答案 0 :(得分:2)

在您的控制器中,您可以在功能开头使用此行:

$this->load->view('template/header_v');

据我所见,您正在再次加载模板,包括标题和(在屏幕截图中可能会看到)列表项。

因此我认为您需要指定另一个要使用的模板。


要在评论中为正在进行的讨论留出更多空间,请点击此处编辑:

您需要两个不同的控制器,一个用于页面,一个用于每个选项卡。在主控制器中,使用

显示标题
$this->load->view('template/header_v');

但是在每个标签中,您不能再包含标题了!由于您在列表项中包含了href,因此jQuery选项卡将通过AJAX加载内容。