Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

Ved21212's avatar

Bootstrap tab - all tabs active inside foreach

Hello Team, I am trying to get a tab view where on the click of a tab I can get fields for that very language in the language_name whose id is {{$lang['id']}} . But with the following code I get all the tab-pane inside the foreach as active. How can I get the fields based on the Id

        <div class="panel-heading">
            @lang('global.app_create')

            <ul class="nav nav-tabs">
                @foreach ($languagefinder as $lang)
                    <li class="nav-item">
                        <a class="nav-link" data-toggle="tab" href="#{{$lang['id']}}lang"> {{$lang['language_name']}} </a>
                    </li>
                @endforeach
              </ul>
        </div>

        <div class="panel-body">
            @foreach ($languagefinder as $item)
            <div class="tab-content clearfix">
                <div class="tab-pane active " id="#{{$item['id']}}lang">
                    <div id="exTab1" class="container" style="margin-right: 0px;margin-left: 0px;">
                    </div>
                </div>
            </div>
            @endforeach
        </div>
0 likes
6 replies
Sti3bas's avatar

@ved21212 replace class="tab-pane active " with class="tab-pane {{ $loop->first ? 'active' : ''}}" and only the first will be active.

Ved21212's avatar

@jeevamugunthan Basically I am getting it though the Helper This is my helper:

public static function getActiveLanguages(){
        $activeLang = Language::get()->toArray();
        return $activeLang;
    }

Here is my blade:

        <?php
            $languagefinder = Helper::getActiveLanguages();
        ?>

        <div class="panel-heading">
            @lang('global.app_create')

            <ul class="nav nav-tabs">
                @foreach ($languagefinder as $lang)
                    <li class="nav-item">
                        <a class="nav-link" data-toggle="tab" href="#{{$lang['id']}}lang">{{$lang['language_name']}}</a>
                    </li>
                @endforeach
              </ul>
        </div>

        <div class="panel-body">
            @foreach ($languagefinder as $item)
            <div class="tab-content clearfix">
                <div class="tab-pane @if($item['id'] == '1') active @endif" id="#{{$item['id']}}lang">
                    <div id="exTab1" class="container" style="margin-right: 0px;margin-left: 0px;">
                    </div>
                </div>
            </div>
            @endforeach
        </div>
Sti3bas's avatar

@ved21212 id="#{{$item['id']}}lang" should be replaced with id="{{$item['id']}}lang" (remove #).

Ved21212's avatar

@sti3bas when I do that I am getting every lang in foreach in tab-content as list on scroll down without tab click

Please or to participate in this conversation.