html中name属性的有效值
我使用PHP从html页面获取单选按钮值。我的html如下所示: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']返回值,但
<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形式以来,这个概念就不再使用了。