Я пытаюсь заполнить поле выбора в php в течение многих лет в поле рождения. Из запроса задается переменная $ year, и этот конкретный год должен быть выбран в моем поле выбора. Код до сих пор заключается в том, что он просто заполняет годы, но не выбирает год, который хранится в mysql db, знает ли кто-нибудь почему? благодаря
$year = $row['year']; // this comes from a query that is stored in the db <select name="year"><? for ($x = 1920; $x < date('Y'); $x++) { ?><option value=<? echo $x; if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option><? }?> </select>
Попробуй это:
$year = (int)$row['year']; // this comes from a query that is stored in the db ?> <select name="year"><?php for ($x = 1920; $x < date('Y'); $x++) { ?><option value="<?php echo $x . '"'; if ($x == $year) { echo ' selected="selected"';}?>><?php echo $x; ?></option><? }?> </select>
Основная проблема заключалась в том, что вы не закрыли value
с двойными кавычками, поэтому был 'selected="selected"
. так что вы получили это:
<option value=1990selected="selected">1990</option>
Кроме того, перед тегом <select
Похоже, что вы не оставили пробел между значением тегов и выбранной меткой. Попробуйте изменить это:
<option value=<? echo $x; if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option>
чтобы:
<option value="<? echo $x; ?>" <? if ($x == $year) {echo 'selected="selected"';}?>><? echo $x;?></option>