【问题标题】:correct tab is not open when page is loaded加载页面时未打开正确的选项卡
【发布时间】:2016-08-05 12:04:16
【问题描述】:

我正在使用 codeigniter 制作 Web 应用程序,当用户使用无效凭据注册时,我试图重新加载位于我的身份验证视图上的注册选项卡,当身份验证视图重新加载时,我的登录选项卡首先显示,因为默认设置为活动选项卡。

认证视图

<div class="row">
    <div class="medium-12 columns">
<ul class="tabs" data-tabs id="authentication_tab">
  <li class="tabs-title is-active"><a href="#panel1" aria-selected="true">Login</a></li>
  <li class="tabs-title"><a href="#panel2">Sign Up</a></li>
</ul>
<div class="tabs-content" data-tabs-content="authentication_tab">
  <div class="tabs-panel is-active" id="panel1">
  <?php $this->load->view('authentication/login');?>
  </div>
  <div class="tabs-panel" id="panel2">
  <?php $this->load->view('authentication/reg');?>
  </div>
</div>
</div>
</div>
<?php $this->load->view('templates/footer');?>

在验证完成后加载我的身份验证视图

public function reg()
    {
$data['title'] = 'Home Page';
$this->load->view('templates/header',$data);
$this->load->view('authentication/authentication#panel2');
    }

【问题讨论】:

  • 你有 JS 来检查 URL 中的井号标签吗?如果没有,则必须对其进行一些检查(PHP 或 JS 端)
  • 不,我的网址中没有任何东西可以检查哈希标签
  • 免责声明:我根本不懂 PHP……但是你能不能把 PHP 逻辑放在 div 标签中来加载“is-active”?另外,课堂不只是“活跃”吗?我使用 Bootstrap,该类只是“活动”而不是“活动”。
  • 我正在使用基础,我直接从文档中复制了标签

标签: php jquery html codeigniter


【解决方案1】:

在您使用的任何控制器中,只需决定(取决于所采取的操作)您要打开哪个选项卡。假设您想要的选项卡是 'thisOne',然后将变量传递给您的视图,例如 $open_tab='thisOne'。

在您看来,在每个选项卡之前,只需检查变量以查看它是否等于当前选项卡,然后设置一个类。 使用这个:

<?php echo ('name_of_tab' == $open_tab) ? 'is_active' : ''; ?>

In your tab LI
<li class="tabs-title <?php echo ('name_of_tab' == $open_tab) ? 'is_active' : ''; ?>">Blah Blah</li>

在您的控制器中,您可以先设置默认选项卡,然后根据用户的帖子或操作等覆盖它。

希望对你有帮助,

保罗。

【讨论】:

    猜你喜欢
    • 2021-07-14
    • 2019-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多