列表框名称中的空白- html

  • 本文关键字:空白 html 列表 php html
  • 更新时间 :
  • 英文 :


我有一个html文件与代码的形式

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

我在php脚本中使用的值。如果我将"listbox"重命名为"listbox",它在任何浏览器中都不起作用。我想这是因为空白的原因,对吧?html中不允许名字中的空格吗?谢谢你的帮助。

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

IDNAME令牌必须以字母([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 Encoding。如果你测试一下上面的表单,你会发现浏览器会自动编码特殊字符,因此空格" "会被转换成"+"(或者,有时是"%20")。

test.html?user+name=ravi&pass+word=canuseeme&123+list+box=2

PHP似乎在这里遇到麻烦的原因(从我模糊的记忆中)是,它试图将请求参数作为易于访问的变量公开给PHP程序员。任何语言中的变量名都不包含空格或以数字开头。

编辑:事实上,如果你使多个选择为你的选择框(只需添加multiple属性在select)的名称需要在"[]"结束给PHP一个提示,它需要安排一个数组变量!

最新更新