2015-04-30 7 views
2

Я пытаюсь сохранить выбранное значение, когда пользователь выбирает месяц, а затем отправляет. Я напечатал правильные месяцы из массива, но я не могу получить $ selected, чтобы выбрать месяц, который был выбран ранее.Сохранять выбранное значение при выборе

<select name="month"> 
<option value="" disabled selected>By Month</option> 
<option value="">-- All --</option> 
<?php 
$months = array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'); 
foreach ($months as $month => $monthvalue): 
$selected = ($month->month == strval(@$_GET['month'])) ? ' selected' : '';     
echo "<option value=\"$monthvalue\"$selected>$monthvalue</option>"; 
endforeach; 
?> 
</select> 
+2

Попробуйте '$ selected = ($ monthvalue == strval (@ $ _ GET ['month']))? 'selected': ''; ' –

ответ

0

Как сказал @Honza Haering, вам нужно проверить значение, которое вы получили от вида (один в $_GET массиве) с $monthvalue. Я удивлен, что $month->month не дает ошибку, так как $month должен быть целым числом, а не объектом.

Лично в цикле foreach я избегаю использования переменной для ключа массива, если это мне действительно не нужно.

+0

Вы правы! Спасибо! Все еще нуб. Изменение значения $ month-> month to $ monthvalue заставляет его работать. – user2920496

+0

Возможно, вы захотите проверить параметр конфигурации уровня ошибки. Хорошо не печатать ошибки на производственном сервере, но также хорошо, чтобы все они работали во время разработки. Ошибки уведомлений могут не остановить выполнение, но часто указывают на ошибку, ожидающую появления. – Rad80

Смежные вопросы