将值列表作为选项传递给3个下拉菜单

时间:2018-09-02 19:20:49

标签: python html

我如何能够将值列表存储到下拉菜单中,然后获取用户选择的值?

name = month = year = ''

# populate names, months, years
names.add( '====================' )
months = ( '==========', 'Ιανουάριος', 'Φεβρουάριος', 'Μάρτιος', 'Απρίλιος', 'Μάϊος', 'Ιούνιος', 'Ιούλιος', 'Αύγουστος', 'Σεπτέμβριος', 'Οκτώβριος', 'Νοέμβριος', 'Δεκέμβριος' )
years  = ( '=====', 2010, 2011, 2012, 2013, 2014, 2015, 2016, 2017, 2018, 2019 )


pdata = pdata + '''
<br><h3><br><font color=orangeredsize=6> Επιλεκτική Αναζήτηση: </font><br>
<form method="POST" action="%s">
'''

pdata = pdata + '<select name="name"><option>%s</option></select>' % '</option><option>'.join( names )

pdata = pdata + '<select name="month"><option>%s</option></select>' % '</option><option>'.join( months )

pdata = pdata + '<select name="year"><option>%s</option></select>' % '</option><option>'.join( list( map( str, years ) ) )

pdata = pdata + '''
<br><input type="image" src="/static/img/submit.gif" name="seek" value="<Αναζήτηση>">
</form> <br><br>
''' % url_for( 'seek' )

2 个答案:

答案 0 :(得分:2)

几个月以来,请使用join方法:

'<select name="month"><option>%s</option></select>' % \
    '</option><option>'.join(months)

多年来,还使用map函数将数字转换为字符串:

'<select name="year"><option>%s</option></select>' % \
    '</option><option>'.join(list(map(str, years)))

要获取用户的选定值,请使用cgi模块:

import cgi

form = cgi.FieldStorage()
year = form.getfirst('year')
month = form.getfirst('month')

答案 1 :(得分:2)

pdata = pdata + '''
<br><h3><br><font color=orangeredsize=6> Επιλεκτική Αναζήτηση: </font><br>
<form method="POST" action="%s">

  <select name="name"><option>%s</option></select>
  <select name="month">%s</select>
  <select name="year"><option>%s</option></select>

  <br>
  <input type="image" src="/static/img/submit.gif" name="seek" value="<Αναζήτηση>">
</form> <br><br>
''' % (url_for( 'seek' ), \
   '</option><option>'.join( names ), 
   ''.join( map( lambda args: '<option value="%s">%s</option>' % (args[0],  args[1]), enumerate(months) ) ), 
   '</option><option>'.join( list( map( str, years ) ) ) )

print(pdata)