如何在标记php中为循环设置dropdownlist


How to set dropdownlist in tag php for loops

当我在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>";