$ _POST中设置了哪些空表单字段?

时间:2014-04-04 00:43:13

标签: php html forms

提交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数组中设置了哪些空字段,这是否总能保证?

1 个答案:

答案 0 :(得分:3)

  • 复选框和单选按钮只有在选中后才会发送。

  • 文本输入将始终发送(as long as they are not disabled),但如果未填写则为空字符串。

  • 点击提交按钮将会被发送。

浏览器和标准决定了这一点。它与PHP没有任何关系。