HTML表单Select选项无法在PHP $_POST结果中显示的问题求助
看起来你遇到的问题很典型,我帮你梳理几个关键排查点和修复方案:
1. 先修复HTML里的致命语法错误
你的提交按钮标签没有闭合,这会导致浏览器解析表单时出现异常,可能直接导致部分字段无法被正确提交:
原代码:
<input type="image" src="img_submit.gif" alt="Submit"
修改为:
<input type="image" src="img_submit.gif" alt="Submit" />
标签不闭合是HTML表单提交异常的常见诱因,先把这个问题解决。
2. 给Select元素添加required属性
你给所有input都加了required,但所有select都没加。如果用户没有手动选择某个select选项,这个字段不会出现在$_POST数组里(因为select默认没有选中项时,提交不会携带该字段)。
给每个select标签加上required,确保用户必须选择,比如:
<select name="processor" required>
其他select元素(moederbord、ram、behuizing等)都照此添加,这样提交时每个select都会有对应的值传入$_POST。
3. 检查PHP中$_POST的键名是否完全匹配HTML的name属性
PHP的$_POST是大小写敏感的,确保你在PHP里引用的键名和HTML里select的name完全一致:
比如HTML里是<select name="grafische">,PHP里必须写$_POST["grafische"],不能写成$_POST["grafische_kaart"]或者$_POST["Grafische"]。
4. 先打印整个$_POST数组排查
在PHP代码开头先添加这段代码,直观查看所有提交过来的数据,确认哪些字段存在、哪些缺失:
<?php var_dump($_POST); ?>
这样你能快速定位到底是哪个select没被提交,还是PHP代码里的引用出错了。
另外注意你提供的PHP代码是截断的(最后一行是<li><?php e),要确保PHP代码完整,每个select对应的$_POST输出都正确写完。
内容的提问来源于stack exchange,提问作者Xander Versteeg

