我使用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。感谢。
答案 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