提交表单后如何保留name为betalingsmethode的下拉菜单选中值?
解决下拉菜单提交后保留选中选项的问题
嘿,我来帮你搞定这个问题!你之前用复选框的方法没用,是因为下拉菜单的表单参数逻辑和复选框不一样~
问题根源
你原来的判断是<?php if(isset($_POST['visa'])) echo "selected='selected'"; ?>,但你的下拉菜单name是betalingsmethode,用户选中的选项值会存在$_POST['betalingsmethode']里,而不是$_POST['visa'],所以这个判断自然不会生效。
正确的实现方式
我们需要先获取提交的付款方式值,然后在每个<option>标签里判断当前选项的value是否和提交的值一致,一致就加上selected属性。
给你一个完整的示例片段:
<!DOCTYPE html> <html lang="nl"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <title>示例表单</title> </head> <body> <form method="post" action=""> <!-- 下拉菜单 --> <select name="betalingsmethode" class="dropdown"> <?php // 获取提交的付款方式,默认空值避免Undefined index错误 $selectedMethod = isset($_POST['betalingsmethode']) ? $_POST['betalingsmethode'] : ''; ?> <option value="visa" <?php echo ($selectedMethod == 'visa') ? 'selected="selected"' : ''; ?>>Visa</option> <option value="mastercard" <?php echo ($selectedMethod == 'mastercard') ? 'selected="selected"' : ''; ?>>Mastercard</option> <option value="paypal" <?php echo ($selectedMethod == 'paypal') ? 'selected="selected"' : ''; ?>>PayPal</option> </select> <button type="submit">提交</button> </form> </body> </html>
关键点解释
- 先通过
isset($_POST['betalingsmethode'])判断表单是否提交,把用户选中的选项值存到$selectedMethod变量里,避免未提交时出现Undefined index错误。 - 每个
<option>标签里用三元运算符判断:如果当前选项的value和$selectedMethod相等,就输出selected="selected",这样表单提交刷新后,就能自动保留用户之前选中的选项了。
这样修改后,你的下拉菜单就能正常记住用户的选择啦~
内容的提问来源于stack exchange,提问作者Maurice
相关产品推荐
相关产品推荐

