12

我使用 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。

4

3 回答 3

15

根据 HTML 规则,name属性可以具有任何值:它以 CDATA 类型声明。不要将此属性与声明为具有 NAME 类型的属性的引用混淆。参见17.4 INPUT 元素,name = cdata [CI]

在 PHP 的使用中$POST[...],需要注意这条 PHP 规则:“变量名中的点和空格转换为下划线。例如<input name="a.b" />变成$_REQUEST["a_b"]。” 请参阅来自外部来源的变量

所以$_POST['1']应该按原样工作并且确实可以工作,但$_POST['1.1']你需要编写$_POST['1_1'].

于 2012-04-29T05:46:17.750 回答
1

尝试将句点替换为连字符之类的其他内容。在表单和 PHP 代码中。句点通常用于.扩展名中的 a。

当涉及到GETPOST标头中参数的键名时,您只想使用字母数字字符,通常带有一些特殊字符。例如连字符、下划线等。如果需要,您也可以随时进行 URL 编码。

于 2012-04-29T02:54:51.037 回答
0

你应该用文本而不是数字来命名你的输入项。它们不应包含任何字符,例如.,!?。这可能会导致问题。有关提交数据的更多信息,请转到PHP 和 HTML 单选按钮

于 2012-04-29T03:00:18.717 回答