php下拉保留选择

时间:2012-08-08 13:14:24

标签: php

在用户点击提交按钮后保留下拉选项 即时工作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>

3 个答案:

答案 0 :(得分:0)

首先,该代码需要重新思考。

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

其次,您的值只是距离索引一个数字,您可以轻松地计算出来。

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

所以,要把一些代码放在嘴边,看起来像是:

<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>

答案 1 :(得分:0)

您可以在声明中使用选定的关键字

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

答案 2 :(得分:0)

您可以从$_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>