我有一些像这样的HTML:
<input type="radio" name="radiobutton[0]" value="1"><br>
<input type="radio" name="radiobutton[0]" value="2"><br>
<input type="radio" name="radiobutton[0]" value="3"><br>
<br>
<input type="radio" name="radiobutton[1]" value="1"><br>
<input type="radio" name="radiobutton[1]" value="2"><br>
<input type="radio" name="radiobutton[1]" value="3"><br>
<br>
<!-- ......... -->
我尝试在web2py中获取这样的数组:
request.post_vars.radiobutton == [1,2,2]
但是web2py一直这样给我:
request.post_vars
radiobutton [0] :1
radiobutton [1] :2
radiobutton [2] :2
我无法在python代码中直接使用它们。 request.post_vars.radiobutton
返回None
和request.post_vars.radiobutton[0]
会引发TypeError:('NoneType' object has no attribute '__getitem__')
name
的{{1}}属性不能为<input type="radio" />
,因为它会将所有按钮都设为一个。
我应该如何在web2py中使用单选按钮数组?
答案 0 :(得分:2)
request.post_vars
是一个Storage
对象,它是一个类似字典的对象,允许通过属性或标准字典语法进行访问。所以,你可以这样做:
request.post_vars['radiobutton[0]']
或:
request.post_vars.get('radiobutton[0]')
答案 1 :(得分:1)
我猜你要做的事情是这样的:
在你的模块中:
def radioArrayExample( name, valuesList ):
radios = []
for v in valuesList:
radios.append( INPUT(_type="radio", _name=name, _value=v) )
return radios
在您的控制器中,您可以调用该功能:
import yourModule
def index():
vals = [1, 2, 3]
radios = yourModule.radioArrayExample( "exampleChoices", vals )
return dict(radios = radios)
在FORM中使用“radios”时,您将能够通过request.vars.exampleChoices
获得所需的值
尝试一下,我想这就是你要找的东西。