html中name属性的有效值

时间:2012-04-29 02:46:49

标签: 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']返回值,但$ _POST ['1.1']什么都不返回。我检查了html 4规格,说name属性的值只以字母开头,但是1不是字母,怎么回来而1.1却没有?或者还有其他一些魔法在这里发生?我使用最新版本的Chrome。感谢。

3 个答案:

答案 0 :(得分:14)

根据HTML规则,name属性可以具有任何值:它以CDATA类型声明。不要将对引用声明为具有NAME类型的属性的引用混淆。见http://www.w3.org/TR/html4/interact/forms.html#adef-name-INPUT

在PHP中使用$POST[...]时,需要注意这个PHP规则:“变量名中的点和空格被转换为下划线。例如,<input name="a.b" />变为$_REQUEST["a_b"]。“请参阅http://www.php.net/manual/en/language.variables.external.php

因此,$_POST['1']应该按原样运作,但确实有效,但您需要编写$_POST['1.1']而不是$_POST['1_1']

答案 1 :(得分:1)

尝试用句号代替连字符等其他内容。在表单和PHP代码中。期间通常用于a。在扩展名中。对于get或post标头中的参数的键名,您只希望使用字母数字字符,通常包含一些特殊字符。如连字符,下划线等。如果需要,您也可以随时进行URL编码。

答案 2 :(得分:0)

这很容易用2秒谷歌搜索我的朋友解决。此外,您应该使用文本而不是数字来命名输入项。它们不应包含任何字符,例如。,!?这可能会导致问题。有关提交数据的更多信息,请转至http://www.homeandlearn.co.uk/php/php4p10.html