php - 如何在禁用 JavaScript 的情况下维护下拉菜单的持久状态 - PHP

标签 php javascript drop-down-menu persistence

我正在用 PHP 进行一些表单编码,当启用 JavaScript 时,一切都运行得很好。但根据过去的经验以及其他网站在禁用 JavaScript 时表现不佳的糟糕经历,我想我会在当前的项目中更加关注它。

对于input type="text" POST 字段,这不是问题。但对于我碰巧使用的下拉菜单,我无法让它持续存在。好吧,我可以,但是默认选择不正确。这是一些代码...

基本下拉结构:

<select id="topic" name="topic">
    <option value="Select an option">Select an option</option>
    <option value="Topic A">Topic A</option>
    <option value="Topic B">Topic B</option>
    <option value="Topic C">Topic C</option>
</select>

我想也许如果我将 selected 与 POST 数据混合,我可以让它像这样工作:

<select id="topic" name="topic">
    <option selected="selected" value="Select an option">Select an option</option>
    <option value=""><?php echo $_POST['topic']; ?></option>
    <option value="Topic A">Topic A</option>
    <option value="Topic B">Topic B</option>
    <option value="Topic C">Topic C</option>
</select>

但它并没有持续下去;它只会返回默认值“选择一个选项”。

尝试这个也不起作用:

<select id="topic" name="topic">
    <option value="Select an option">Select an option</option>
    <option selected="selected" value=""><?php echo $_POST['topic']; ?></option>
    <option value="Topic A">Topic A</option>
    <option value="Topic B">Topic B</option>
    <option value="Topic C">Topic C</option>
</select>

它仍然存在,但没有正确的默认值。开始时为空白(因为尚未输入 POST)。

我已经进行了一些谷歌搜索,但并没有真正找到任何对此类事情非常有用的东西,所以我不确定下一步该去哪里。有什么想法/建议吗?

提前非常感谢您!

最佳答案

我通常会做如下的事情:

<select id="topic" name="topic">
<option value="Select an option">Select an option</option>
<?php
    $topics=Array("Topic A","Topic B","Topic C");
    foreach($topics as $topic){
        echo '<option value="'.$topic.'"'.($_POST['topic']==$topic?' selected="selected"':'').'>'.$topic.'</option>';
    }
?>
</select>

它的作用是打印出选择框,就像您所描述的那样,但它将 selected="selected"属性添加到与您的 $_POST 变量匹配的选项。

关于php - 如何在禁用 JavaScript 的情况下维护下拉菜单的持久状态 - PHP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11217628/

相关文章:

php - PDO bindParam 与执行

javascript - 我想在谷歌浏览器扩展中访问下载的文件(在我的例子中是 csv 文件)并获取其中的内容

javascript - jquery菜单,悬停并显示:none

引导 .dropdown-menu 类的 css 样式不适用于祖先/后代选择器

php - SQLSTATE[42S22] : Column not found: 1054 Unknown column

PHP,需要从 DateTime 中减去 12 小时 30 分钟

PHP Ubuntu - 备份和恢复 MySQl

javascript - 如何在 <td> </td> 中加载以下上下文的 datapicker?

javascript - Reactjs 根据检查的输入更改对象属性的状态

jquery - 每行多列的 DropDownList