PHP 下拉列表保留选择


php drop down retain selection

保留用户点击提交按钮后下拉的选择我只是在第 1-4 天工作,任何帮助将不胜感激放轻松,我是菜鸟

<?PHP
    $day = array( );
    $day[0] = "1";
    $day[1] = "2";
    $day[2] = "3";
    $day[3] = "4";
    $days=$day;   
?>
<select name="day"> 
     <option value="day">Day</option>
     <?PHP
        for ($days = 0; $days < 4; $days++) {           
            print"<option value='$day[$days]'>$day[$days]</option>";
        }
    ?>
</select>

您可以从$_REQUEST超全局中提取传入的值,并在每次迭代时检查它。要预先选择的<option>标记应包含 selected 属性。此外,当您可以在循环中简单地增加计数器时,无需创建连续整数数组。这样的东西应该适合你:

<select name="day"> 
<option value="day">Day</option>
<?php
    $day = null;
    if (array_key_exists('day', $_REQUEST) {
        $day = $_REQUEST['day'];
    }
    for ($i = 1; $i <= 4; $i++) {
       echo '<option value="' . $i . '"';
       if ($i == $day) {
           echo ' selected="selected"';
       }
       echo '>' . $i . "</option>'n";
    }
?>
</select>

对于初学者来说,这段代码需要认真的重新思考。

您首先创建一个数组,然后无缘无故地将其添加到其他变量中。

其次,您的值与索引仅相差一个数字,您可以轻松地动态计算。

最后,您在同一数组中循环以仅使用索引(不需要数组)。

所以,把一些代码放在我的嘴边,它看起来像:

<select name="day"> 
    <option value="day">Day</option>
    <?php
        for ($day = 1; $day <= 4; $day++) {
            print"<option value='$day'>$day</option>";
        }
    ?>
</select>

也就是说,您从未提到需要选择哪个项目。假设它是一个叫做$the_day的变量,这里有更多的代码:

<?php
$the_day = 4;
?><select name="day"> 
    <option value="day">Day</option>
    <?php
        for ($day = 1; $day <= 4; $day++) {
            $it_is = $day == $the_day ? 'selected="selected"' : '';
            print"<option value='$day' $it_is>$day</option>";
        }
    ?>
</select>

您可以在语句中使用选定的关键字

print"<option value='$day[$days]' selected='selected'>$day[$days]</option>";