HTML下拉菜单默认选中值设置失效 PHP GET传参匹配异常问题
问题根因
你的代码核心问题出在<option>标签的value属性中,给Status参数值额外加了多余的单引号,导致实际获取的参数值和判断条件里的字符串无法匹配:
- 你写的
value="?pageno=1&Status='Active'"会让跳转后的URL里Status参数值为带单引号的'Active',而你的判断逻辑if($Status=='Active')匹配的是无单引号的Active,二者内容不一致,条件永远不成立,选中状态自然不会生效。
修复代码
删除两个option的value属性中包裹Status值的单引号即可,修正后的完整代码如下:
<?php echo $Status; ?> <!-- 此处可正确打印URL传递的、存储在Status变量中的参数值 --> <select class="btn btn-primary" required name="Status" style="float:right" onchange="location = this.value"> <option value="">Select Status</option> <option value="?pageno=1&Status=Active" <?php if($Status=='Active'){echo "selected";}?>>Active</option> <option value="?pageno=1&Status=Not Active" <?php if($Status=='Not Active'){echo "selected";}?>>Not Active</option> </select>
补充优化建议
你可以对URL参数中的特殊字符做URL编码处理,避免空格等字符引发的兼容性问题,比如把Not Active改为Not%20Active,浏览器会自动解码为正常的空格字符串。
内容的提问来源于stack exchange,提问作者SAEO Uchiha
相关产品推荐
相关产品推荐

