我正在使用web.py框架来创建小网页。我有一个基本的html,其中包含一个带有四个复选框字段的表单,如下所示
home.html的
$def with ( )
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<title>Home</title>
</head>
<body>
<form method="POST" action="/checkboxes">
<p>check_1 <input type="checkbox" id="curly_1" value="" name="curly_1"/></p>
<p>check_2 <input type="checkbox" id="curly_2" value="" name="curly_2"/></p>
<p>check_3 <input type="checkbox" id="curly_3" value="" name="curly_3"/></p>
<p>check_4 <input type="checkbox" id="curly_4" value="" name="curly_4"/></p>
<button id="submit" name="submit">Submit</button>
</form>
</body>
</html>
index.py
import os
import sys
import web
from web import form
render = web.template.render('templates/')
urls = (
'/checkboxes', 'Checkboxes',
)
app = web.application(urls, globals())
class Checkboxes:
def POST(self):
i = web.input(groups = {})
print i,">>>>>>>>>>>>"
raise web.seeother('/checkboxes')
if __name__ == "__main__":
web.internalerror = web.debugerror
app.run()
结果:
<Storage {'curly_3': u'', 'submit': u'', 'curly_4': u'', 'curly_1': u'', 'groups': [], 'curly_2': u''}> >>>>>>>>>>>>
所以从html视图我可以看到四个checkbox
字段,我已经检查了所有复选框并单击了提交按钮,现在它应该来到Checkboxes
类并且应该打印输入的结果(如上所示,在post方法中检查的复选框。
但结果我得到空字符串(无结果),如上所示,
任何人都可以告诉我上述代码中的错误
另外如何获取所选复选框的值?
答案 0 :(得分:1)
web.input()返回的字典中存在复选框元素的名称表示该字段已被选中。否则,它将不会出现在字典中。尝试检查表单上四个复选框的子集,我想你会明白我的意思。
更多详情:https://groups.google.com/forum/#!searchin/webpy/checkbox/webpy/PVBdPv7kGDM/IqgLptUEN-EJ
答案 1 :(得分:1)
如果您只需要选中或取消选中所有复选框值,则可以像处理ajax一样处理它。对于此更改输入类型提交到按钮。然后选中是否选中所有输入复选框并将其值填入json。然后它的值会使你的控制器发布方法失效。