简体   繁体   English

的HTML <select>默认选项

[英]HTML <select> default option

I know this question has been asked before, but I have an unaddressed concern about it. 我知道这个问题以前曾被问过,但对此我仍未解决。

How can you have a default value that is generated by serverside script? 如何获得服务器端脚本生成的默认值?

Ex: 例如:

Weekday: <select name="weekday" class="right" value="<% =rs("Weekday")%>">
<option value="Monday">Monday</option>
<option value="Tuesday">Tuesday</option>
<option value="Wednesday">Wednesday</option>
<option value="Thursday">Thursday</option>
<option value="Friday">Friday</option>
<option value="Saturday">Saturday</option>
<option value="Sunday">Sunday</option>
</select>

I know you can have the selected attribute with regular elements, but I'm thrown for a loop here. 我知道您可以将所选属性与常规元素一起使用,但是我在这里陷入循环。

Any ideas? 有任何想法吗?

You want your HTML to look something like this eventually - notice the selected after "Friday" to select Friday by default: 您希望您的HTML最终看起来像这样-注意"Friday"之后的selected默认选择星期五:

<select name="weekday" class="right">
  <option value="Monday">Monday</option>
  <option value="Tuesday">Tuesday</option>
  <option value="Wednesday">Wednesday</option>
  <option value="Thursday">Thursday</option>
  <option value="Friday" selected>Friday</option>
  <option value="Saturday">Saturday</option>
  <option value="Sunday">Sunday</option>
</select>

A quick and dirty PHP example can be used like so, where each option is asked to verify whether it is the correct option for the current date. 可以像这样使用一个快速且肮脏的PHP示例,其中要求每个选项验证它是否是当前日期的正确选项。 If it is, show selected otherwise don't show anything. 如果是,则显示已selected否则不显示任何内容。 You can try this code on http://phpfiddle.org/lite . 您可以在http://phpfiddle.org/lite上尝试此代码。

<html>                                                                                      
<body>                                                                                      
    <select name="weekday" class="right">                                                   
        <option value="Monday" <?php echo setSelected('Monday'); ?>>Monday</option>         
        <option value="Tuesday" <?php echo setSelected('Tuesday'); ?>>Tuesday</option>      
        <option value="Wednesday" <?php echo setSelected('Wednesday'); ?>>Wednesday</option>
        <option value="Thursday" <?php echo setSelected('Thursday'); ?>>Thursday</option>   
        <option value="Friday" <?php echo setSelected('Friday'); ?>>Friday</option>         
        <option value="Saturday" <?php echo setSelected('Saturday'); ?>>Saturday</option>   
        <option value="Sunday" <?php echo setSelected('Sunday'); ?>>Sunday</option>         
    </select>                                                                               
</body>                                                                                     
</html>                                                                                     
<?php                                                                                       
function setSelected($day)                                                                  
{                                                                                           
    date_default_timezone_set('America/Chicago');                                           
    return strtolower($day) === strtolower(date('l')) ? ' selected' : '';                   
}                                                                                           
?> 

I'd be more inclined to create the select/option on the server side itself. 我更倾向于在服务器端本身上创建选择/选项。 Again, quick and dirty PHP example: 同样,又快又脏的PHP示例:

<html>
<body>
    <select name="weekday" class="right">
        <?php
        date_default_timezone_set('America/Chicago');
        $dayOfWeek = strtolower(date('l'));
        $days = array('Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday');
        foreach ($days as $day)
        {
            echo sprintf("<option value=\"%s\" %s>%s</option>\n",
                $day,
                $dayOfWeek == strtolower($day) ? 'selected' : '',
                $day
            );
        }
        ?>
    </select>
</body>
</html>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM