如何使用 PHP 设置 HTML 选择框的选定值

新手上路,请多包涵

我有下一块模板:

 <select name="interest">
    <option value="seo">SEO и Блоговодство</option>
    <option value="auto">Авто</option>
    <option value="business">Бизнес</option>
    <option value="design">Дизайн</option>
    ...

并将结果值存储在 $result['interest'] 中。

如何使用 PHP 将 option 元素标记为选中?

谢谢!

原文由 akrisanov 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 605
2 个回答

手动方式……

 <select name="interest">
    <option value="seo"<?php if($result['interest'] == 'seo'): ?> selected="selected"<?php endif; ?>>SEO и Блоговодство</option>
    .....

更好的方法是遍历兴趣

$interests = array(
    'seo' => 'SEO и Блоговодство',
    'auto' => 'Авто',
    ....
);

<select name="interest">
<?php foreach( $interests as $var => $interest ): ?>
<option value="<?php echo $var ?>"<?php if( $var == $result['interest'] ): ?> selected="selected"<?php endif; ?>><?php echo $interest ?></option>
<?php endforeach; ?>
</select>

原文由 Galen 发布,翻译遵循 CC BY-SA 2.5 许可协议

通过设置一个包含您的选项数据的数组来保持您的脚本干燥和清洁。循环遍历数组并将数据打印到带有占位符的模板字符串中,以避免丑陋、笨拙的插值、连接和内联条件。

代码:( 演示

 $interests = [
    'seo' => 'SEO и Блоговодство',
    'auto' => 'Aвто',
    'business' => 'Бизнес',
    'design' => 'Дизайн',
];
$selected = 'business';

echo '<select name="interest">';
foreach ($interests as $value => $text) {
    printf(
        '<option value="%s"%s>%s</option>',
        $value,
        $selected === $value ? ' selected' : '',
        $text
    );
}
echo '</select>';

对于任何付出额外努力来生成带有适当制表符的行分隔选项的人,有几种方法可以在 PHP 中打印时添加制表符和换行符,但我不会在这里演示它们。

原文由 mickmackusa 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题