当我在HTML中设置选项值时,它可以工作:
<select name="month" id="month" style="width: 110px;" required>
<option selected="selected" disabled="disabled" value="">Month</option>
<option value="01"<?= $month == '01' ? 'selected="selected"' : '';?>>January</option>
<option value="02"<?= $month == '02' ? 'selected="selected"' : '';?>>February</option>
<Select>
但我不知道如何在PHP循环中做同样的事情:(错误的)
<?php
$row = 31;
echo "<select name='day' id='day' style='width: 90px;' required>";
echo "<option selected='selected' disabled='disabled' value=''>Tanggal</option>";
for ($i = 1; $i <= $row; $i++) {
echo "<option value=".$i." ". $day == $i ? 'selected="selected"' : ''.">".$i."</option>";
}
echo "</select>";
?>
当我检查元素时,输出为:<1<2<3<4…..
帮助我在php 内部设置selected='selected'
您可以更好地拆分逻辑部分,如下所示:
for ($i = 1; $i <= $row; $i++) {
echo "<option value=" . $i . " ";
if ($day == $i) {
echo 'selected="selected"';
}
echo ">".$i."</option>";
}
这使得它可以工作并且更可读
看起来你的逻辑是可以的,但你需要在你的if中加括号,如下所示:
echo "<option value=".$i." ". ($day == $i ? 'selected="selected"' : '').">".$i."</option>";