HTMLフォームの複数選択のメニューで選択された値を取得し表示します。
#!/usr/bin/python
# -*- coding: utf-8 -*-
'''
選択されたメニューの項目を取得する(複数選択の場合)
'''
html = '''Content-Type: text/html
<html>
<head>
<title>選択されたメニューの項目を取得する(複数選択の場合)</title>
</head>
<body>
<h1>選択されたメニューの項目を取得する(複数選択の場合)</h1>
<p>入力された項目は、「%s」です。</p>
<form action="test12.cgi" method="post">
<select name="lang" size="3" multiple="multiple">
<option value="python">python</option>
<option value="perl">perl</option>
<option value="ruby">ruby</option>
</select>
<input type="submit" />
</form>
</body>
</html>
'''
import cgi
f = cgi.FieldStorage()
lst = f.getlist('lang')
print html % ','.join(lst)
import cgi
f = cgi.FieldStorage()
HTMLフォームから送信された値は、cgiモジュールのFieldStorageクラスを使用して取得します。
複数の項目が選択されたメニューの値を取得するには、FieldStorageクラスの getlist() を使用します。
メニューが選択されると、メニューの name 属性に対して、選択された項目の value 属性の値が設定されます。
lst = f.getlist('lang')
getlist() を使って選択項目のリストを取得します。
項目が選択されなかったとき、getlist()は空のリスト[]を返します。
print html % ','.join(lst)
リスト lst の値を ,(カンマ) でつなぎ、文字列フォーマットの %s と置き換えて出力します。