0

奇妙なエラーが発生しました (私はcodeigniterを使用しています)。ヘッダーと jquery タブが 2 回表示されます。

ここに画像の説明を入力

これは私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 回読み込まれるのはなぜですか? ありがとう

4

1 に答える 1

2

コントローラーでは、関数の最初に次の行があります。

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

私が見る限り、ヘッダーと (おそらくスクリーンショットでわかるように) リスト項目も含めて、テンプレートを再度読み込んでいます。

したがって、使用する別のテンプレートを指定する必要があると思います。


コメントで進行中の議論の余地を増やすために、ここで編集します。

ページ用と各タブ用の 2 つの異なるコントローラーが必要です。メインコントローラーでは、ヘッダーを表示します

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

ただし、各タブにヘッダーを含めてはなりません。リスト項目に href を含めたので、jQuery タブは AJAX 経由でコンテンツをロードします。

于 2013-04-02T14:00:14.593 に答える