問題:
クラス「アクティブ」を含むタブを検索して削除するには、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');
})
ここまでは順調ですね。すべてが機能します。ここで、「submit-updatetime」というボタンを押すと、送信元のタブに対応する 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で生成されたアクティブなタブに追加するにはどうすればよいですか?