从web2py文档中(重点添加):
ajax(url, [name1, name2, ...], target)
它异步调用url(第一个参数),传递
现场输入
名称等于列表中的一个名称(第二个参数)。。。
在代码中,第二个参数是
['name']
然而,任何地方都没有名称为“name”的输入字段,因此没有“name”变量被发布到web2py(因此,
request.post_vars.name
是
None
,这是每次尝试获取中不存在的变量时返回的默认值
request.post_vars
).
在这种情况下,因为您没有在表单输入字段中放置任何数据,所以可以忽略第二个参数
ajax()
。相反,通过URL本身传递相关数据:
{{url = URL('default', 'arrow_button_callback',
vars=dict(id=candidate.id, direction='up'))}}
<button type="button" name="up_button" onclick="ajax('{{=url}}', [], 'target')"
class="fa fa-caret-up arrow-up fa-4x"></button>
然后在
arrow_button_callback
控制器,您可以通过
request.get_vars.id
(或只是
request.vars.id
). 您可以通过
request.vars.direction
。为“向下”按钮创建一个新的URL
direction='down'
.