提交HTML表单后,我注意到有些空输入字段被发送到$ _POST数组,而其他字段则没有(它们都有name属性)。是什么决定了什么是设定的,什么不是?
<!DOCTYPE html>
<head><title>EXAMPLE TEST</title></head>
<body>
<form action="/test.php" method="post">
<input type="text" name="text">
<input type="radio" name="radio">
<input type="checkbox" name="checkbox">
<input type="date" name="date">
<textarea name="textarea" rows="5"></textarea>
<input type="submit" name="submit">
<!-- etc... -->
</form>
<?php var_dump($_POST); ?>
</body>
</html>
保持所有字段不变并提交表单,var_dump($ _ POST)显示:
array(3) { ["text"]=> string(0) "" ["textarea"]=> string(0) "" ["submit"]=> string(6) "Submit" }
我问这个是因为我的剧本“似乎”将空的收音机添加到$ _POST [“radio”]并且我的脚本工作正常,但现在突然它没有出现在数组中。我没有在我的脚本中修改任何内容。但我的问题不是关于我的脚本,我的问题是:我怎么知道在$ _POST数组中设置了哪些空字段,这是否总能保证?
答案 0 :(得分:3)
复选框和单选按钮只有在选中后才会发送。
文本输入将始终发送(as long as they are not disabled),但如果未填写则为空字符串。
点击提交按钮将会被发送。
浏览器和标准决定了这一点。它与PHP没有任何关系。