问题:
搜索包含“活动”类的选项卡并将其删除,同时将“活动”类添加到 PHP POST 提交的当前选项卡。
我有一个看起来像这样的选项卡菜单。
HTML 代码:
<div class="pull-right special-search" id="navtabs">
<div class="btn-group">
<a href="#tab1" class="active btn btn-info" data-toggle="tab"><i class="icon-home icon-white"></i> Start</a>
<a href="#tab2" class="btn btn-info" data-toggle="tab"><i class="icon-book icon-white"></i> Essay</a>
<a href="#tab3" class="btn btn-info" data-toggle="tab"><i class="icon-ok-sign icon-white"></i> Criteria</a>
<a href="#tab4" class="btn btn-info" data-toggle="tab"><i class="icon-time icon-white"></i> Activity</a>
</div>
</div>
要在这些选项卡之间切换,我使用以下 jQuery 代码:
$('#navtabs a[data-toggle="tab"]').on('shown', function (e) {
e.target;
e.relatedTarget;
$('#navtabs a[data-toggle="tab"]').attr('class','btn btn-info');
$(this).attr('class','active btn btn-info');
})
到现在为止还挺好。一切正常。现在,当我按下一个按钮说“提交更新时间”时,我希望它与 PHP 进行检查,该 PHP 对应于它是从哪个选项卡发送的。我通过使用隐藏类型字段来做到这一点:
<input type="hidden" id="submit_button" name="button_pressed">
然后使用以下代码使用 PHP 进行检查:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST')
{
$button = $_POST['button_pressed'];
if ($button == 'submit-updategrades')
$tabname = 'tab2';
else if ($button == 'submit-updatetime')
$tabname = 'tab4';
}
?>
为了确保用户停留在他/她所在的选项卡上,我使用以下 PHP/jQuery:
<?php
if (!empty($tabname))
{
echo '$("#navtabs a[href=#tab1]").removeClass(\'active\');';
echo '$("#tab1").removeClass(\'active\');';
echo '$("#navtabs a[href=#'.$tabname.']").addClass(\'active\');';
echo '$("#'.$tabname.'").addClass(\'active\');';
}
?>
这工作得很好,只是我觉得我的最后一个 PHP/jQuery 解决方案有缺陷。例如,#tab1 仅在您进入页面时才有效,不一定一直有效。
问题:
如何在最后一个 PHP/jQuery 代码中搜索具有“活动”类的选项卡并将其删除,同时将其添加到使用 $tabname 生成的活动选项卡中?