Сохранять выбор выбора после обновления

У меня есть следующий код, который перенаправляет страницу (onchange) в зависимости от значения выбора опции. Например, мы находимся в index.php. Существует список выбора, и если пользователь выбирает Design, который имеет значение «one», перенаправленная страница будет одной и той же страницей, но с другим URL (index.php и one)

Моя цель – выбрать выбранную опцию, выбранную после перенаправления / обновления.

Вот мой код

<select size="1" name="Products" onchange="if(this.options.selectedIndex>0) window.location.href = 'index.php&'+this.options [this.options.selectedIndex].value"> <option value="">Please Select a Product</option> <option value="one">Design Software</option> <option value="two">Manufacturing Software</option> <option value="three">Machine Tools</option> </select> 

Спасибо за ваше время

Related of "Сохранять выбор выбора после обновления"

Решение с поддержкой javascript и jQuery:

 $(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]; } 

Имейте в виду, что вы должны изменить & to ? и установите параметр и значение. подобный option=one .

Поэтому соответствующий javascript должен измениться на это:

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

Демо: http://lb.vg/969f6

Хранить данные в файлах cookie при изменении и перезагрузке при загрузке страницы (или другой страницы)

Вам необходимо передать переменную вместе с перенаправлением. Затем выведите его из переменной $ _GET и проверьте, задано ли значение при построении выбора.

 <?php $menu_option = $_GET['product']; ?> <select size="1" name="Products" onchange="if(this.options.selectedIndex>0) window.location.href = 'index.php?product='+this.options [this.options.selectedIndex].value"> <option value="">Please Select a Product</option> <option value="one"<?php if ('one' == $menu_option) { echo ' selected="selected"; } ?>>Design Software</option> <option value="two"<?php if ('two' == $menu_option) { echo ' selected="selected"; } ?>>Manufacturing Software</option> <option value="three"<?php if ('three' == $menu_option) { echo ' selected="selected"; } ?>>Machine Tools</option> </select> 

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

У меня есть функция, которая обрабатывает это. Версия на github немного устарела, но все равно должна работать.

 $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']; ?> <select size="1" name="Products" onchange="if(this.options.selectedIndex>0) window.location.href = 'index.php?Products='+this.options[this.options.selectedIndex].value"> <option value="">Please Select a Product</option> <option value="one" <?php echo ('one' == $selected) ? 'selected="selected"' : '';?> >Design Software</option> <option value="two" <?php echo ('two' == $selected) ? 'selected="selected"' : '';?>>Manufacturing Software</option> <option value="three" <?php echo ('three' == $selected) ? 'selected="selected"' : '';?>>Machine Tools</option> 

замените это на одно: onchange = "if (this.options.selectedIndex> 0) window.location.href = 'index.php? pro =' + this.options [this.options.selectedIndex] .value">