我使用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类型的属性的引用混淆。看到 http://www.w3.org/TR/html4/interact/forms.html#adef-name-INPUT
在使用中 $POST[...]
在PHP中,您需要注意这个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']
。
通过HTML规则, name
属性可以具有任何值:它以CDATA类型声明。不要将对引用声明为具有NAME类型的属性的引用混淆。看到 http://www.w3.org/TR/html4/interact/forms.html#adef-name-INPUT
在使用中 $POST[...]
在PHP中,您需要注意这个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']
。
尝试用句号代替连字符。在表单和PHP代码中。期间通常用于a。在扩展名中。对于get或post标头中的参数的键名,您只希望使用字母数字字符,通常包含一些特殊字符。如连字符,下划线等。如果需要,您也可以随时进行URL编码。
使用2秒谷歌搜索我的朋友很容易解决这个问题。此外,您应该使用文本而不是数字来命名输入项。它们不应包含任何字符,例如。,!?这可能会导致问题。有关提交数据的更多信息,请访问 http://www.homeandlearn.co.uk/php/php4p10.html