我正在用 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/