使用javascript变量进入python Block

时间:2011-03-20 08:13:42

标签: javascript jquery python

我想将JavaScript变量用于python Block。

<script>
$(document).ready(function() {
   $("#WO_cpp_id").change(function() {
   id = this.selectedIndex;
   ajax('{{=URL(r=request,f='get_CIs',vars={'CPP_Id':'#here I want to use id variable')}}', ['WO_cpp_id'], 'WO_ci_id');
})
.change(); }); </script>

先谢谢

2 个答案:

答案 0 :(得分:3)

您的python代码正在服务器上运行。您的JavaScript代码(如引用的)正在客户端上运行。因此,您无法在Python代码中直接使用JavaScript变量。你所做的是以任何一种方式发送你想从客户端发送到服务器的数据。

其中一种方式是“ajax”。此客户端代码将变量foo的内容作为POST上的“fooParameter”参数发送到服务器:

var foo = "This is some information";
$.ajax({
    url: "myscript.py",
    method: "POST",
    data: {fooParameter: foo},
    success: function(responseData) {
        // Successful POST; do something with the response if you want
    },
    error: function(jxhr, statusText, err) {
        // Error, handle it
    }
});

jQuery docsthe Wikipedia article on ajax中的更多内容。

答案 1 :(得分:0)

那不行。 Python在客户端上呈现页面之前在服务器上运行;呈现页面后,Javascript在浏览器中运行。当Python代码运行时,甚至没有设置id变量。

相反,你应该让你的javascript代码添加你想要设置的现有查询字符串的额外数据(或者使用jQuery的ajax选项的data属性)。