【问题标题】:Return to same tab after form submit表单提交后返回同一选项卡
【发布时间】:2016-05-12 06:46:35
【问题描述】:

我正在使用引导选项卡,当我从选项卡提交表单时,我希望它在同一个选项卡中重新加载。为此,我尝试在我发送的链接和 GET 值之后使用 #。提交表单时,# 会显示在链接上,但不会将选项卡设置为活动状态。关于 SO 的问题的答案已经要求使用 ajax。但我不想使用 ajax 进行表单提交。

<form action="store-admin.php?search=<?php echo $stname;?>#stock" method="post">

这就是我的标签页的样子:

<ul class="nav nav-tabs">
<li class="active"><a data-toggle="tab" href="#home">Home</a></li>
<li><a data-toggle="tab" href="#ophours">Open Hours</a></li>
<li><a data-toggle="tab" href="#stock">Stock</a></li>
</ul>

【问题讨论】:

    标签: php forms twitter-bootstrap tabs


    【解决方案1】:

    我可能会在最后添加一个 url 变量,然后检测它并编写一些 jquery 来激活选项卡。

    <form action="store-admin.php?search=<?php echo $stname;?>&tab=stock" method="post">
    

    并在页面中(可能应该为选项卡变量添加更多验证,但这是基本的):

    <?php if (isset($_GET['tab'])) {
        echo "<script>$('.nav-tabs a[href=\"#".$_GET['tab']."\"]').tab('show');</script>";
    } ?>
    

    【讨论】:

    • 如何使用 js 为该选项卡设置class="active"
    • $('.nav-tabs a[href=\"".$_GET['tab ']."\"]').addClass('active');"; } ?>
    • 我想我修正了我原来的答案。
    • 不,仍然没有。我在关于如何完成标签的问题中添加了更多代码
    【解决方案2】:

    我在 Matt Cowley 的建议下使用了&lt;form action="store-admin.php?search=&lt;?php echo $stname;?&gt;&amp;tab=stock" method="post"&gt;,并在关闭无序列表后添加了这个脚本

    <script>
    
    var val = '<?php echo $_GET['tab'] ?>';
    if(val != ''){
        //alert(val);   
        jQuery(function () {
        jQuery('a[href="#stock"]').tab('show');
        });
    }
    </script>
    

    【讨论】:

    • 可能将其设为 'a[href="#'+val+'"]' 以便它可以是选项卡 url var 中定义的任何选项卡。
    猜你喜欢
    • 2022-08-03
    • 1970-01-01
    • 2015-05-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-20
    相关资源
    最近更新 更多