我使用 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。
根据 HTML 规则,name
属性可以具有任何值:它是使用 CDATA 类型声明的。不要将此属性与声明为具有 NAME 类型的属性的引用混淆。参见 17.4 输入元素,名称 = cdata [CI]。
在 PHP 中使用 $POST[...]
时,您需要注意以下 PHP 规则:"变量名称中的点和空格将转换为下划线。例如,<input name="a.b" />
变得$_REQUEST["a_b"]
。请参阅来自外部源的变量。
所以$_POST['1']
应该按原样工作并且确实有效,但你需要写$_POST['1_1']
而不是$_POST['1.1']
.
句点替换为连字符等其他内容。在形式和 PHP 代码中。句点通常用于扩展名称中的.
。
当涉及到 GET 或 POST 标头中参数的键名时,您只想使用字母数字字符,通常使用一些特殊字符。如连字符、下划线等。如果需要,您也可以始终进行 URL 编码。
您应该用文本而不是数字来命名输入项。 它们不应包含任何字符,如.
、,
、!
和?
。这可能会导致问题。 有关提交数据的更多信息,请转到 PHP 和 HTML 单选按钮