我以为我找到了问题的答案 Web2py: Pass a variable from view to controller
我试图在那里采用这个例子以获得DIV的大小,这最终取决于浏览器窗口的大小(相对定义)。为此,我在视图中有以下代码
<script>
var div_size_Value = document.getElementById("model_graph_div").clientWidth;
ajax('{{=URL('default', 'my_action', vars=dict(div_size_value=div_size_value))}}', [], ':eval');
</script>
但我总是得到
NameError:name&#39; div_size_value&#39;未定义
错误似乎没问题,因为Javascript var div_size_value是在HTML帮助程序URL中解决的。
因此我的问题是: 如何从客户端(视图)获取DIV大小值到控制器?
非常感谢您的支持!
祝你好运 克莱门斯
答案 0 :(得分:1)
ajax('{{=URL('default', 'my_action', vars=dict(div_size_value=div_size_value))}}',
[], ':eval');
您正在将Javascript与Python混合使用。在web2py模板中,{{...}}
模板分隔符内的所有内容都是在将HTML发送到浏览器之前在服务器上执行的Python代码。因此,在您的代码中,div_size_value
应该是服务器端Python环境中可用的Python变量。由于URL查询字符串涉及Javascript变量,因此您必须通过Javascript构建查询字符串,如下所示:
ajax('{{=URL('default', 'my_action')}}' + '?div_size_value=' + div_size_value, ...)