Я рискну предположить, что то, что вы надеетесь выполнить sh, похоже на следующее.
Меню SELECT
обычно создается с использованием содержимого из базы данных, но оно может быть другим источником, возможно даже stati c, если вариантов мало. Учитывая, что есть комментарий other available data to be selected
Я предположил, что есть другие местоположения и решил показать, используя массив.
Каждый раз, когда изменяется меню SELECT
, прослушиватель событий javascript будет перезагружать страницу, но установит строку запроса (и, таким образом, сделает доступной переменную GET) для выбранного местоположения. Меню SELECT
создается путем циклического перебора массива / набора доступных местоположений, и для каждого элемента выполняется сравнение с переменной GET (назначенной переменной $selection
.) Если переменная $selection
соответствует элементу в массиве / набор записей, который считается selected
Аналогичный подход может быть принят для реагирования на отправляемую форму - или вы можете использовать $_REQUEST
, чтобы охватить как GET, так и POST
<?php
$arr=array(
'USA','England','Scotland','France','Italy','India','Dubai','Japan'
);
$selection=!empty( $_GET['locations'] ) ? filter_input( INPUT_GET,'locations',FILTER_SANITIZE_STRING) : false;
?>
<!DOCTYPE html>
<html lang='en'>
<head>
<meta charset='utf-8' />
<title>Maintain previously selected value in SELECT menu</title>
</head>
<body>
<select name='locations'>
<option selected hidden disabled>Please select<?php
foreach( $arr as $location ){
$selected=$selection && trim( $selection )==trim( $location ) ? ' selected' : '';
printf('
<option value="%1$s"%2$s>%1$s', $location, $selected );
}
?>
</select>
<script>
document.querySelector('select[name="locations"]').addEventListener('change',function(e){
location.search='locations='+this.value
})
</script>
</body>
</html>