Web2py:从客户端(视图)到控制器获取价值

Web2py: Get value from client (view) to controller

我认为我在中找到了问题的答案

我正在尝试采用那里的示例以获得大小 a DIV,最终取决于浏览器的大小 window(相对定义)。为此,我在视图

中有以下代码
<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 'div_size_value' is not defined

错误似乎没问题,因为 Javascript var div_size_value 在 HTML Helper URL.

中得到了解决

因此我的问题是: 如何从客户端(视图)到控制器获取 DIV 大小值?

非常感谢您的支持!

此致 克莱门斯

ajax('{{=URL('default', 'my_action', vars=dict(div_size_value=div_size_value))}}',
     [], ':eval');

您正在混合使用 Javascript 和 Python。在 web2py 模板中,{{...}} 模板定界符内的所有内容都是 Python 代码,这些代码在将 HTML 发送到浏览器之前在服务器上执行。因此,在您的代码中,div_size_value 应该是服务器端 Python 环境中可用的 Python 变量。因为 URL 查询字符串涉及一个 Javascript 变量,所以您必须改为通过 Javascript 构建查询字符串,如下所示:

ajax('{{=URL('default', 'my_action')}}' + '?div_size_value=' + div_size_value, ...)