如何在Codeigniter中从控制器导航不同的选项卡

时间:2014-12-18 06:17:03

标签: php codeigniter

我是CodeIgniter的新手。我有一个注册表单视图。在此视图中有几个选项卡,一个用于个人详细信息,另一个用于照片上传,另一个用于工作详细信息。在第一次调用时,我加载选项卡以获取个人详细信息有一个用于保存个人详细信息的提交按钮。我想在提交个人数据后导航到照片上传标签。是否可以在同一视图中加载照片上传标签?

4 个答案:

答案 0 :(得分:1)

我不知道你的观点是怎样的。这是一种可以帮助你的方式 首先在你的控制器上写一个函数,就像这样

function myFunction($tab=1)//may be index
{
   $data['tab']=$tab;
   //do other stuff
   if($tab==2)
   {
      //save personal details
       $data['id']=the_id_you_saved;
   }
   //suppose your last tab is 3
   if($tab==3)
   {
       //do your stuff or redirect
   }
   $this->load->view('your_tab_view', $data);

}

现在您的视图文件将如下所示。

//load your other htmls
<?php
    if($tab==1)
    {
     ?>
      <form action="controler_name/myFunction/2" method="post">
         //your personal information form
      </form>
     <?php
    }
    else if($tab==2)
    {
    ?>
     <form action="controler_name/myFunction/3" method="post">
       <input type="hidden" name="id" value="<?php echo $id ?>">
         //your file upload form
      </form>
    <?php        
    }
?>

希望你能明白如何做到这一点。感谢

答案 1 :(得分:1)

试试这个..它对我有用。

查看:

<?php $tab = (isset($tab)) ? $tab : 'tab1'; ?> 
<ul class="nav nav-tabs" id="myTabs">
    <li class="<?php echo ($tab == 'tab1') ? 'active' : ''; ?>" > 
        <a href="#tab_1_1" data-toggle="tab">Personal Info</a>
    </li>
    <li class="<?php echo ($tab == 'tab2') ? 'active' : ''; ?>" > 
        <a href="#tab_1_2" data-toggle="tab">Family Info</a>
    </li>
    <li class="<?php echo ($tab == 'tab3') ? 'active' : ''; ?>" > 
        <a href="#tab_1_3" data-toggle="tab">Upload Photo</a>
    </li>
</ul>

并为每个选项卡窗格设置类:

<div class="tab-pane <?php echo ($tab == 'tab1') ? 'active' : ''; ?>" id="tab_1_1">

将控制器更新为:

$data['tab'] = 'tab3';

    $this->load->view('commons/header');
    $this->load->view('addmember',$data);
    $this->load->view('commons/footer');

Tis代码将显示第一个选项卡(个人信息)作为默认选项卡,在提交第一个选项卡后,它将导航到第三个选项卡(上载照片)。如果需要,您可以将其更改为第二个选项卡。

希望这会对你有所帮助。

答案 2 :(得分:0)

我有一个建议,虽然可能有其他方法可以做到。

在视图中,您可以创建三个选项卡,并通过ajax在每个选项卡中加载视图。 这可以像单击第一个选项卡的提交一样成功返回下一个选项卡的视图,并在ajax成功时显示下一个选项卡,使前一个选项卡显示为:none;

类似其他标签。使用templates可以轻松实现这一目标。

答案 3 :(得分:0)

$user['details'] = array('name=>test','email=>test@test.com'); $this->load->view('header'); $this->load->view('addphoto',$user); $this->load->view('footer');

  

我给你一个控制器页面的示例结构。您可以在此处拨打添加照片并发送用户详细信息。