1

我有一个带有表单代码的 html 文件

<select name="listbox" size="3">
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>

我正在使用 php 脚本中的值。如果我将“列表框”重命名为“列表框”,它在任何浏览器中都不起作用。我认为这是因为空白,对吧?html中不允许名称中的空格吗?感谢您的任何帮助。

4

2 回答 2

4

阅读http://www.w3.org/TR/html401/types.html#type-name上的规范

IDNAME标记必须以字母 ([A-Za-z]) 开头,后跟任意数量的字母、数字 ([0-9])、连字符 ("-")、下划线 ("_") , 冒号 (":") 和句点 (".")。

于 2013-04-25T22:26:51.257 回答
0

试试这个 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 变量!"[]"

于 2013-04-25T23:21:30.533 回答