PHP实现表单提交后select下拉框选中项默认保留的方法咨询
实现方案
核心逻辑
- 首先获取表单提交后传递的
resource_cat参数,你的表单提交方式如果是GET用$_GET['resource_cat'],是POST用$_POST['resource_cat'],需要兼容两种方式可以用$_REQUEST['resource_cat'] - 遍历输出分类option时,判断当前分类的slug和接收到的参数值是否一致,一致就给option加上
selected属性,同时要先判断参数是否存在,避免PHP抛出未定义索引的警告。
修改后的完整代码
<div class="m-all t-1of4 d-1of4 cf search-field"> <select name="resource_cat"> <option value="" selected="" disabled="">Category</option> <?php foreach($category_query as $cat){ printf('<option value="%s" %s>%s</option>', $cat->slug, (isset($_REQUEST['resource_cat']) && $_REQUEST['resource_cat'] == $cat->slug ? 'selected' : ''), $cat->name ); } ?> </select> <span class="icon"><i class="fas fa-chevron-down"></i></span> </div>
注意事项
- 如果表单提交方式固定,建议把
$_REQUEST替换为对应的$_GET/$_POST,安全性更高 - 已保留默认的空值禁用提示项,用户未选择分类提交后仍会显示该提示
内容的提问来源于stack exchange,提问作者TheLovableType
相关产品推荐
相关产品推荐

