Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/83.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
html中name属性的有效值_Html - Fatal编程技术网

html中name属性的有效值

html中name属性的有效值,html,Html,我使用PHP从html页面获取单选按钮值。我的html如下所示: <input type="radio" name="1.1" value="yes"> <input type="radio" name="1.1" value="no"> <input type="radio" name="1" value="yes"> <input type="radio" name="1" value="no"> 结果是$_POST['1']返回值,但

我使用PHP从html页面获取单选按钮值。我的html如下所示:

<input type="radio" name="1.1" value="yes">
<input type="radio" name="1.1" value="no">

<input type="radio" name="1" value="yes">
<input type="radio" name="1" value="no">


结果是$_POST['1']返回值,但$_POST['1.1']不返回任何值。我检查了HTML4规范,比如名称属性的值只以字母开头,但1不是字母,为什么它会返回,而1.1不是?还是有其他的魔法在这里发生?我使用最新版本的Chrome。谢谢。

试着用句号代替其他字符,比如连字符。在表单和php代码中。句号通常用于一个句号。在扩展名中。当涉及get或post标题中参数的键名称时,您希望只使用字母数字字符,通常使用一些特殊字符。例如连字符、下划线等。如果需要,您也可以随时进行URL编码。

这很容易通过2秒钟的谷歌搜索解决,我的朋友。此外,您应该使用文本而不是数字来命名输入项。它们不应包含任何字符,如。,!?这可能会导致问题。有关提交数据的详细信息,请按HTML规则转到,
name
属性可以有任何值:它是用CDATA类型声明的。不要将与对声明为具有名称类型的属性的引用混淆。看

在PHP中使用
$POST[…]
时,您需要注意以下PHP规则:“变量名中的点和空格转换为下划线。例如
变成
$\u请求[“a\u b”]
”请参阅


因此,
$\u POST['1']
应该按原样工作,而且确实有效,但是您需要编写
$\u POST['1']
而不是
$\u POST['1']

谢谢您发布第二个链接!下面是name属性对应的HTML5文档:@Jukka K.Korpela:这是什么意思,如果您编写
,请不要将其与声明为具有name类型的属性的引用混淆。
?区别在哪里?声明为具有
NAME
type的属性是一个HTML4概念,因为它在形式上是一个SGML应用程序。属性的正式定义中的
NAME
关键字表示属性值必须以字母开头,并且只能包含字母、数字和下划线。声明的属性在中的“Type”列中有“NAME”(在HTML4规范中)。自从HTML5不再使用SGML形式以来,这个概念就不再使用了。