Липкие формы в переполнении стека

Мой код:

<label>Year: </label>
<?php
print '<select>';
$start_year = date('1910');
for ($y = $start_year; $y <= ($start_year + 104); $y++) {
print "<option value=\"$y\">$y</option>";
}

print '</select>';
?>

и наш профессор хочет, чтобы мы включили его в код, подобный следующему:

echo "<option value=\"$option\"";

if ($messageType == $option){
//make it sticky
echo ' selected="selected"';
}

echo ">$option</option>";

однако этот код не работает с моим кодом, и я не могу, чтобы он стал значением по умолчанию / sticky.

0

Решение

В вашем для цикла:

for ($y = $start_year; $y <= ($start_year + 104); $y++) {
($y== $option) ? echo '<option value="'.$y.'" selected="selected">'.$y.'</option>' : echo '<option value="'.$y.'">'.$y.'</option>';
}

Я предположил, что значение $option это год доступно в вашем для цикла.

1

Другие решения

Я ненавижу публиковать полный ответ на этот вопрос, но пока не могу комментировать … Учитывая, что ваша проблема «не может показаться, что она становится значением по умолчанию» Мои деньги очень просты

echo ' selected="selected"';

должно быть просто

echo ' selected';

http://www.w3schools.com/tags/att_option_selected.asp

но просмотрите исходный код на веб-странице, которую он генерирует, и убедитесь, что HTML генерируется так, как ожидалось, в противном случае

0

По вопросам рекламы [email protected]