2017-01-24 3 views
0

Ниже приведен код, в котором есть только два варианта в раскрывающемся списке, т.е. 2016 и 2017. Я хочу сохранить выбранное значение после отправки. Но я получаю 2016 после выбора 2017. Какие изменения нужно сделать?Как сохранить выбранное значение после отправки в php

<?php 
$yearArray = range(2016, 2017); 
?> 

<select name="year" id="select2"> 
<option value="0">Select Year</option> 
<?php 
foreach ($yearArray as $year) 
{ 

    $selected = ($year == 2016) ? 'selected' : ''; 
    echo '<option name="year" '.$selected.' value="'.$year.'">'.$year.'</option>'; 
} 
?> 
</select> 
+0

Что вы хотите сказать? Вам отправлена ​​форма об изменении поля выбора? –

+0

@ SaravananSampathkumar да я отправляю форму. и я хочу сохранить выбранную опцию в selectbox после нажатия кнопки отправки. –

+0

Можете ли вы загрузить полный файл? –

ответ

1

Причина +2016 выбирается всегда происходит потому, что вы устанавливаете его в 2016 году

<?php 
foreach ($yearArray as $year) 
{ 

    $selected = ($year == 2016) ? 'selected' : ''; // Here, you are setting it 
    echo '<option name="year" '.$selected.' value="'.$year.'">'.$year.'</option>'; 
} 
?> 

Вместо этого сделать,

<?php 
foreach ($yearArray as $year) 
{ 

    $selected = ((isset($_POST['year']) && $_POST['year'] == $year) || ($year == '2016')) ? 'selected' : ''; 

    echo '<option name="year" '.$selected.' value="'.$year.'">'.$year.'</option>'; 
} 
?> 

По умолчанию выбрано 2016, если вы представили любую другую ценность, которая будет выбрана.

+0

Невозможно использовать isset() в результате выражения (вместо этого вы можете использовать выражение «null! ==») –

+0

К сожалению, была опечатка. Исправлено. –

+0

M получение «select year» после отправки формы по умолчанию –

1

Попробуйте это:

if((isset($_POST['year']) && $year == $_POST['year'])){ 
    $selected = 'selected'; 
}else if($year == 2016){ 
    $selected = 'selected'; 
} 
Смежные вопросы