如何将JavaScript视图中的变量传递给控制器中的Python?我不想使用request.vars
或request.args
,因为这将允许用户通过在地址栏中输入任意参数来为动作提供参数。Web2py:将视图中的变量传递给控制器
实施例视图:
<button onclick='myFunction();'>Execute</button>
<script>
function myFunction();{
var value = calculateValue();
//pass value to my_action
window.location = 'my_action';
}
</script>
实施例的控制器:一旦Ajax响应是
<script>
function myFunction();{
var value = calculateValue();
ajax('{{=URL('default', 'my_action')}}' + '?value=' + value, [], ':eval');
}
</script>
随之而来的是客户端重定向:
def index():
return dict()
def my_action():
#retrieve passed variable
#handle the variable
#...
redirect(URL('index'))
看着'args'和'vars'。它们用于将变量和参数从URL传递给控制器。 –
是的,但正如我所说的,它允许用户在地址栏输入如下内容:'.../default/my_action/50'给my_action一个参数50. – DiMarzio
另一种方法是通过ajax调用创建会话,然后重定向到读取该会话的'my_action'页面。 –