TorresAlGrande
TorresAlGrande

Reputation: 213

Selected same after the link

How do I make the selected option stay after link? I am using the value as href and when it loads it just returns to all. What should I do to lock the option value?

Here is my select code:

echo ($AppUI->_("Company tickets:") . '<select id="my-select2" name="currentComp">');
echo ('<option value="?m=ticketsmith"/>All') ;
foreach ($rows as $row) {
  if (in_array($row['company_id'], $array1))  {
    echo ('<option value="?m=ticketsmith&amp;ticket_company=' . $row['company_id'] . '" />' . $row['company_id'].', ' . $row["company_name"]) ;
  }
}

And here is my JS:

document.getElementById("my-select2").onchange = function() {
    localStorage.setItem('my-select2', document.getElementById("my-select2").value);
    window.location.href=this.value;
}
if (localStorage.getItem('my-select2')) {
    document.getElementById("my-select2").options[localStorage.getItem('my-select2')].selected = true;
}

Upvotes: 0

Views: 43

Answers (1)

mplungjan
mplungjan

Reputation: 178350

Version 1

document.getElementById("my-select2").onchange = function() {
  localStorage.setItem('my-select2', this.value);
  window.location.href=this.value;
}
var val = localStorage.getItem('my-select2');
if (val) {
  document.getElementById("my-select2")[val].selected=true;
}

Version 2 (recommended)

window.onload=function() {
  document.getElementById("my-select2").onchange = function() {
    localStorage.setItem('my-select2', this.selectedIndex);
    window.location.href=this.value;
  }
  var selIdx = localStorage.getItem('my-select2');
  if (selIdx !=null && selIdx !=-1) {
    document.getElementById("my-select2").selectedIndex=selIdx;
  }
}

Upvotes: 1

Related Questions