首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

18.7  处理一个字段的多个输入

在HTML的表单中可以为一个名称设置多个值。您可以使用checkbox或多选框。或者您可以为一个名称指派多个输入元素。

cgi模块通过FieldStorage实例中的getlist()方法来处理这种情况。它可以返回一个列表,其中含有某个特殊字段的所有值。下面是一个例子,它向用户呈现出一些列表,并指明哪个被选择。

#!/usr/bin/env python

# CGI list example - Chapter 18 - list.cgi

import cgitb

cgitb.enable()

import cgi, os, urllib

print "Content-type: text/html"

print

print """<HTML>

<HEAD>

<TITLE>CGI List Example</TITLE></HEAD><BODY>"""

form = cgi.FieldStorage()

print "You selected: "

selections = form.getlist('data')

printable = [cgi.escape(x) for x in selections]

print ", ".join(printable)

print """<FORM METHOD="GET" ACTION="%s">

Select some things:<P>""" % os.environ['SCRIPT_NAME']

for item in ['Red', 'Green', 'Blue', 'Black', 'White', 'Purple',

    'Python', 'Perl', 'Java', 'Ruby', 'K&R', 'C++', 'OCaml', 'Haskell',

    'Prolog']:

    print '<INPUT TYPE="checkbox" NAME="data" VALUE="%s">' %  cgi.escape(item)

    print ' %s<BR>' % cgi.escape(item)

print """<INPUT TYPE="submit" NAME="submit" VALUE="Submit">

</FORM>

</BODY></HTML>"""

试验这个程序并运行它,选择C++、Haskell和Blue,然后点击Submit。

注意,程序会在“You Selected”区域列出这3个条目。还请注意我的系统中的URL为(http://localhost:8765/cgi-bin/list.cgi?data=Blue&data=C%2B%2B&data=Haskell&submit=Submit)。这里,data重复出现了3次。使用其他方法来为同一个字段名指定多个实例也会得到类似的URL。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论