引导标签

时间:2016-02-24 09:49:11

标签: codeigniter controller

我是codeigniter的新手,并使用codeigniter和bootstrap开发项目。 我有一个名为Welcome.php&的主控制器。此控制器的相应视图是user_view.php。 user_view.php基本上包含三个部分leftbar,header&身体。我可以传递除身体以外的每个部分的数据。因为它包含更多部分,这取决于左栏菜单项单击。我成功通过最初传递每个部分的视图来加载user_view.php。但是当单击左侧栏菜单项时,它会调用名为Invoice.php的新控制器,相应的视图文件是user_view,其中包含三个主体部分选项卡。现在我很困惑如何为标签加载数据。 我的流程是这样的 -

In User.php (Main Controller) 
function index(){
    $data = array(
                'nav' =>$this->load->view('nav_view','',true),
                'sidebar' =>$this->load->view('sidebar_view','',true),
                'content' =>$this->load->view('content_view','',true)
                );
            $this->load->view('user_view',$data);
}

在user_view.php(主控制器视图)正文部分

<?php echo $nav;?>
    <div id="wrapper">
        <!-- #sidebar-wrapper -->
        <?php echo $sidebar;?>
        <!-- /#sidebar-wrapper -->
        <!-- Page Content -->
        <?php echo $content;?>
        <!-- /#page-content-wrapper -->
    </div>

从侧栏包含许多链接并点击一个链接我正在调用另一个名为Invoice.php的控制器并且需要支付功能     而Invoice.php看起来像这样

public function taxable()
    {
        $data = array(
            'nav' =>$this->load->view('nav_view','',true),
            'sidebar' =>$this->load->view('sidebar_view','',true),
            'content' =>$this->load->view('invoice_taxable_view','',true),
            );
        $this->load->view('user_view',$data);
    }

invoice_taxable_view.php

<!-- Page Content -->
        <ul class="nav nav-tabs" id="myTab">
            <li class="active"><a data-toggle="pill" href="#home">New Invoice</a></li>
            <li><a data-toggle="pill" href="#menu1">Invoice Data</a></li>
            <li><a data-toggle="pill" href="#menu2">Edit Invoice</a></li>
        </ul>
        <div class="tab-content">
            <div id="home" class="tab-pane fade in active">
                <p><?php $this->load->view('taxable_invoice_form',true); ?></p>
            </div>
          <div id="menu1" class="tab-pane fade">
                <p><?php $this->load->view('taxable_invoice_record',true); ?></p>
          </div>
          <div id="menu2" class="tab-pane fade">
            <h3>EDIT INVOICE</h3>
            <p>Some content in menu 2.</p>
          </div>
        </div>

现在,内容部分包含三个带表单的标签。那么如何将所有三个标签内容传递给主视图。或者我也必须单独查看它。我还可以直接加载taxable_invoice_record.php的内容。因为它的数据来自数据库。我应该选择ajax调用,但它破坏了MVC模式。 请帮帮我。我没有任何办法,并尝试了许多可能的方式。

1 个答案:

答案 0 :(得分:0)

我已经解决了。最初我试图做的是每次为每个控制器加载主视图。并且主视图的身体部位每次都在变化。因此,我很难通过每个控制器的身体内容。我只是放弃了保持相同的maain视图并以不同方式加载正文内容的想法。相反,我创建了单独的视图,并添加了标题siderbar正文,就像我为主控制器做的那样。但感谢所有和那些为主堆栈溢出做出艰苦努力的人。

HappyCoding