我有一个带有表单代码的 html 文件
<select name="listbox" size="3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
我正在使用 php 脚本中的值。如果我将“列表框”重命名为“列表框”,它在任何浏览器中都不起作用。我认为这是因为空白,对吧?html中不允许名称中的空格吗?感谢您的任何帮助。
阅读http://www.w3.org/TR/html401/types.html#type-name上的规范
ID和NAME标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。
试试这个 HTML。Mozilla Firefox 和 IE 都可以使用它!
<html>
<head>
<title>Name Attribute with Spaces</title>
</head>
<body>
<form method="get"> <!-- no "action", form will post to self -->
<table>
<thead><b>Please provide login details</b></thead>
<tbody>
<tr>
<td>Username:</td>
<td><input type="text" name="user name" /></td>
</tr>
<tr>
<td>Password:</td>
<td><input type="password" name="pass word" /></td>
</tr>
<tr>
<td>List Box:</td>
<td>
<select name="123 list box" size="3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
</td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="Login" /></td>
</tr>
</tbody>
</table>
</form>
</body>
</html>
HTML 对空格没有任何问题的原因是URL 编码。如果您测试上面的表格,您会发现浏览器会自动对特殊字符进行编码,因此空格“”会转换为“+”(或者,有时是“%20”)。
test.html?user+name=ravi&pass+word=canuseeme&123+list+box=2
PHP 似乎在这里遇到麻烦的原因(据我模糊记得)是它试图将请求参数作为易于访问的变量公开给 PHP 程序员。并且任何语言的变量名都不包含空格或以数字开头。
编辑:事实上,如果您为您的选择框进行了多项选择(只需在select中添加多个属性),则名称需要以结尾以向 PHP 提示它需要安排一个 Array 变量!"[]"