PHP使用POST方法提交表单时无法获取title参数是什么原因?
问题根因
表单中标记了disabled属性的输入框,在表单提交时不会被包含在POST数据中,所以你第二个处理文件neworder.inc.php从$_POST里拿不到title2的值。
修复方案
- 方案1:将
disabled属性替换为readonly属性readonly属性会让输入框不可编辑,但提交表单时会正常携带值,修改第一个文件里的两个输入框代码即可:
<!-- 把原有代码里的disabled替换为readonly --> <input type="text" readonly name="bookid2" value="<?= $id2 ?>"> <input type="text" readonly name="title2" value="<?= $title2 ?>">
- 方案2:额外添加隐藏输入框传递参数
如果需要保留输入框的禁用样式,可以新增两个hidden类型的input来存储值,用户看不到也不影响表单提交:
<!-- 保留原有disabled的展示输入框,新增以下两行代码 --> <input type="hidden" name="bookid2" value="<?= $id2 ?>"> <input type="hidden" name="title2" value="<?= $title2 ?>">
额外优化建议
你在错误跳转时直接拼接$title2到URL上,可能会因为书名里的特殊字符导致参数截断异常,建议用urlencode()函数处理后再拼接:
header("location: ../neworder.php?error=emptyinput&bookid=$id2&title=".urlencode($title2));
内容的提问来源于stack exchange,提问作者Warren Chan
相关产品推荐
相关产品推荐

