kanniyappan r
kanniyappan r

Reputation: 37

how to make the tab is active in jquery based upon URL

here i am using tab it is fine,i want to make some extra changes , in my footer page i have 4 link , if i am click that link means URL should be like this ouroffice.php?cityname=chennai, now what i want to do means bassed upon the cityname i want to make the tab is active i tried but i am not able to make the tab is active,how can do this?

//var cityname = '<?php echo $_GET['cityname']?>';
var cityname = "hydrabad";
if (cityname == "chennai") {
  $("#nv_li").tabs({
    active: 1
  });
} else if (cityname == "hydrabad") {
  $("#nv_li").tabs({
    active: 2
  });
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="row" style="padding-top: 30px;">
  <ul class="nav nav-tabs" id="nv_li">
    <li class="active" id="link"><a data-toggle="tab" href="#beng">BENGALURU</a> 
    </li>
    <li id="link"><a data-toggle="tab" href="#chennai">CHENNAI</a>
    </li>
    <li id="link"><a data-toggle="tab" href="#hydrabad">HYDERABAD</a>
    </li>
    <li id="link"><a data-toggle="tab" href="#dubai">DUBAI</a>
    </li>
    <li id="link"><a data-toggle="tab" href="#london">LONDON</a>
    </li>
    <li><a data-toggle="tab" href="#kochi" style="border-right: 0px;">HONG KONG</a>
    </li>

  </ul>
  <div class="tab-content">
    <div id="beng" class="tab-pane fade in active">
      <?php include 'bangalore.php';?>
    </div>

    <div id="chennai" class="tab-pane fade">
      <?php include 'chhenai.php';?>
    </div>

    <div id="hydrabad" class="tab-pane fade">
      <?php include 'hyd.php';?>
    </div>

    <div id="kochi" class="tab-pane fade">
      <?php include 'kochi.php';?>
    </div>

    <div id="mumbai" class="tab-pane fade">
      <?php include 'mumbai.php';?>
    </div>

    <div id="pune" class="tab-pane fade">
      <?php include 'pune.php';?>
    </div>

    <div id="abu" class="tab-pane fade">
      <?php include 'abu_dhabi.php';?>
    </div>


    <div id="dubai" class="tab-pane fade">
      <?php include 'dubai.php';?>
    </div>

    <div id="london" class="tab-pane fade">
      <?php include 'london.php';?>
    </div>
  </div>
</div>

Upvotes: 0

Views: 76

Answers (2)

Dart
Dart

Reputation: 787

Just use window.location.search and run function(on document ready) to set active class to appropriate li element, like so:

// Search parameter extractor
function getSearchParam(searchKey) {
  var params = window.location.search.replace('?', '').split('&');
  var searchParam = null;
  var keyValue;

  for (var i = 0, len = params.length; i < len; i++) {
    keyValue = params[i].split('=');

    if (keyValue[0] === searchKey) {
        searchParam = keyValue[1];
        break;
    }
  }

  return searchParam;
}

// Function to set active city class
function setActiveCity(cityName) {
    var link = document.querySelector('a[data-toggle="tab"][href="#' + cityName + '"]');
    var content = document.getElementById(cityName);


  if (link) {
    link.parentNode.classList.add('active');
  }

  if (content) {
    content.classList.add('in', 'active');
  }
}

var city = getSearchParam('cityname');

if (city) {
  setActiveCity(city);
}

Upvotes: 1

Pramod Kharade
Pramod Kharade

Reputation: 2085

<ul id="navi">
<li><a class="menu" href="#">Pune</a></li>
<li><a class="menu" href="#">Baramati</a></li>
<li><a class="menu" href="#">chennai T</a></li>
<li><a class="menu" href="#">London</li>          
<li><a class="menu" href="#">UK</a></li>


$('a.menu').click(function(){
    $('a.menu').removeClass("active");
    $(this).addClass("active");
});

I Hope. it will help you!

Upvotes: 0

Related Questions