Mantenha a seleção selecionada depois de atualizar

Eu tenho o seguinte código que redireciona a página (onchange) com base no valor da opção escolhida. Por exemplo, estamos no index.php. Existe uma lista de seleção e se o usuário escolher Design que tenha o valor “um”, a página redirecionada será a mesma página, mas com url diferente (index.php & one)

Meu objective é ter a opção selecionada, selecionada após o redirecionamento / atualização.

Aqui está o meu código

0) window.location.href = 'index.php&'+this.options [this.options.selectedIndex].value"> Please Select a Product Design Software Manufacturing Software Machine Tools  

Obrigado pelo seu tempo

Uma solução com javascript e jQuery framework:

 $(document).ready(function(){ var option = gup('option'); $("select option[value='"+option+"']").attr('selected','selected'); }); function gup( name ) { name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]"); var regexS = "[\\?&]"+name+"=([^&#]*)"; var regex = new RegExp( regexS ); var results = regex.exec( window.location.href ); if( results == null ) return ""; else return results[1]; } 

Tenha em mente que você precisa mudar o & to ? e defina um parâmetro e um valor. como option=one .

Portanto, o javascript correspondente deve mudar para isso:

 onchange="if(this.options.selectedIndex>0) window.location.href = 'index.php?=option'+this.options [this.options.selectedIndex].value"> 

Demo: http://lb.vg/969f6

Armazene dados em cookies na mudança e recarregue quando a página (ou outra página) é carregada

Você precisará passar a variável juntamente com o redirecionamento. Em seguida, tire-o da variável $ _GET e verifique se o valor está definido ao criar a seleção.

 < ?php $menu_option = $_GET['product']; ?>  

https://github.com/paulschreiber/misc/blob/master/php/popup_menu.php

Eu tenho uma function que lida com isso. A versão no github é um pouco antiga, mas ainda deve funcionar.

 $productList = array ( "one" => "Design Software" "two" => "Manufacturing Software" "three" => "Machine Tools" ); $js = "onchange=\"if(this.options.selectedIndex>0) window.location.href = 'index.php?Products='+this.options[this.options.selectedIndex].value\""; print popup_menu("Products", $productList, $js); 
 < ?php $selected = 0; if(isset($_GET['Products'])) $selected = $_GET['Products']; ?>  

substitua onchange com este: onchange = “if (this.options.selectedIndex> 0) window.location.href = ‘index.php? pro =’ + this.options [this.options.selectedIndex] .value”>