Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/262.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如果表单中没有从菜单中选择任何选项,也没有将名称或值传递给服务器,这样说对吗_Php_Forms - Fatal编程技术网

Php 如果表单中没有从菜单中选择任何选项,也没有将名称或值传递给服务器,这样说对吗

Php 如果表单中没有从菜单中选择任何选项,也没有将名称或值传递给服务器,这样说对吗,php,forms,Php,Forms,我在做PHP验证,我在读表单。有人能澄清这一说法吗 “如果未选择任何选项,则控件将不成功,并且在提交表单时,名称或任何值都不会提交到服务器”。为了测试这一点,我创建了 <form method="get" action="#"> <select name="select_name" > <option value="">Select one</option> <option value="one">Ch

我在做PHP验证,我在读表单。有人能澄清这一说法吗 “如果未选择任何选项,则控件将不成功,并且在提交表单时,名称或任何值都不会提交到服务器”。为了测试这一点,我创建了

<form method="get" action="#">
    <select name="select_name" >
       <option value="">Select one</option>
      <option value="one">Choice one</option>
       <option value="two" >Choice two</option>
       <option value="three">Choice three</option>
    </select>
</form>

选择一个
选择一
选择二
选择三

当我打印GET数组时,我看到名称“select_name”总是传递给服务器。对于收音机和复选框,这是不正确的。但我不明白这句话想说什么。在选择选项期间是否可能传递“既不传递名称也不传递值”?

您引用的规范:

如果未选择任何选项,则控件将不成功,并且在提交表单时,名称或任何值都不会提交到服务器

…指示未选择任何选项时要执行的操作,但默认情况下,大多数浏览器将自动选择(下拉)选择元素的第一个选项。在您的测试页面上,您没有看到在加载页面时自动选择第一个选项“选择一个”吗?在第一个选项的值为空字符串的情况下,如果您在提交表单时选择了该选项,则应该有一个名为“select_name”的请求参数和一个空字符串值

如果是(非下拉)选择多个元素:

<select name="select_name" multiple>

…默认情况下未选择任何选项,因此如果您在提交时未选择任何选项,您应该会看到您不会获得“select_name”请求参数


注意:您用“PHP”标记了您的问题,但这不是PHP的东西。是浏览器根据当时表单控件的状态形成请求。

所以我从w3.org引用的前面的词是指您提到的案例,如果设置了“multiple”?我试过了你刚才说的话,但事实上,没有什么是可以忽略的。如果我再添加一个问题,“单选”和“复选框”也取决于浏览器,默认设置为?单选按钮和复选框都默认为未选中(因此不会提交)。对单选按钮进行编码以使其在默认情况下处于选中状态是很正常的,但如果您在标记中不这样做,浏览器将不会这样做。对于下拉选择列表,我知道的唯一不选择选项的方法是通过JavaScript设置
。selectedIndex=-1
。如果您这样做了,我会假设您在请求中没有“select_name”参数,但我没有尝试过。