自动选择 <select> <options> 标签中的数据

Posted

技术标签:

【中文标题】自动选择 <select> <options> 标签中的数据【英文标题】:Auto select the data in <select> <options> tag 【发布时间】:2017-03-30 11:02:47 【问题描述】:

我有一个用户填写并点击“保存并下一步”的表单,这会将他们带到另一个页面,用户可以在该页面上传图片并点击“最终提交”。他们还可以返回上一页编辑数据。

那时,他之前填写的所有数据都应该显示在文本框上。我已经使用会话变量来存储数据并显示它。

我卡在下拉框中。

 <select name="District">
      <option value="East">East</option>
      <option value="West">West</option>
      <option value="North">North</option>
      <option value="South">South</option>
 </select>

当用户提交时,我将选定的值存储在 Session $_SESSION['District'] = $_POST['District']; 中,当用户点击返回上一页时,我需要在下拉列表中自动选择该选项值。

我怎样才能做到这一点?

【问题讨论】:

【参考方案1】:

使用array 会更容易。

<?php
$options = array(
    'East', 'West', 'North', 'South',
);
?>
<select name="District">
    <?php foreach($options as $option)  ?>
        <option value="<?php echo $option; ?>" <?php echo (isset($_SESSION['District']) && $_SESSION['District'] == $option) ? "selected" : "" ?>><?php echo $option; ?></option>
    <?php  ?>
</select>

【讨论】:

所有答案都是正确的,您的答案更容易快速。竖起大拇指 谢谢哥们...这是最简单的正确!【参考方案2】:

检查会话中的值,如果匹配则设置选择的属性

<select name="District">
      <option <?php if (!empty($_POST['District']) && $_POST['District'] == 'East') echo 'selected'; ?> value="East">East</option>
      <option <?php if (!empty($_POST['District']) && $_POST['District'] == 'West') echo 'selected'; ?> value="West">West</option>
      <option  <?php if (!empty($_POST['District']) && $_POST['District'] == 'North') echo 'selected'; ?> value="North">North</option>
      <option <?php if (!empty($_POST['District']) && $_POST['District'] == 'South') echo 'selected'; ?> value="South">South</option>
 </select>

【讨论】:

【参考方案3】:

只需根据会话中存储的值检查所选值。 您的选项将如下所示:

<option value="East" <?php echo ($_SESSION['District']=="East" ? "selected" : ""; ?>>East</option>

正确的会被选中

【讨论】:

【参考方案4】:
<select name="District">
    <option value="East" <?php if($_SESSION['District'] == "East"):?>selected="selected"<?php endif; ?>>East</option>
    ... Repeat with all options ...

【讨论】:

【参考方案5】:

使用下面的代码:

<select name="District">
      <option value="East" <?php echo ($_SESSION['District'] == "East") ? "selected" : "" ?>>East</option>
      <option value="West" <?php echo ($_SESSION['District'] == "West") ? "selected" : "" ?>>West</option>
      <option value="North" <?php echo ($_SESSION['District'] == "North") ? "selected" : "" ?>>North</option>
      <option value="South" <?php echo ($_SESSION['District'] == "South") ? "selected" : "" ?>>South</option>
 </select>

【讨论】:

【参考方案6】:
<option value="East" <?php echo isset($_SESSION['District']) && $_SESSION['District'] == 'East' ? 'selected="selected"' :'' ;?> >East</option>
<option value="West" <?php echo isset($_SESSION['District']) && $_SESSION['District'] == 'West' ? 'selected="selected"' :'' ;?>>West</option>
<option value="North" <?php echo isset($_SESSION['District']) && $_SESSION['District'] == 'North' ? 'selected="selected"' :'' ;?>>North</option>
<option value="South" <?php echo isset($_SESSION['District']) && $_SESSION['District'] == 'South' ? 'selected="selected"' :'' ;?>>South</option>

【讨论】:

以上是关于自动选择 <select> <options> 标签中的数据的主要内容,如果未能解决你的问题,请参考以下文章

在 Vue 3 中加载异步选项时自动选择第一个 <select> 选项

能否实现html中的<select>自动展开,但是还要保留选择的框

使用 jQuery 清除启用多选的 <select> 上的所有选择的快速方法?

Selectize是文本框和<;选择>;盒它';基于jQuery,具有自动完成和原生感觉的键盘导航功能;用于标记、联系人列表等。

如何为表单的 <select> 关系应用 if 语句

为啥我无法获得 <select> 字段的正确值?