在Python块中使用JavaScript变量

1 投票
2 回答
1522 浏览
提问于 2025-04-16 14:03

我想在Python代码块中使用JavaScript的变量。

<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

这样做不行。Python 代码是在服务器上运行的,而页面在用户的浏览器中显示之前就已经执行了;而 JavaScript 则是在页面显示出来后在浏览器中运行的。在 Python 代码执行的时候,id 这个变量甚至还没有被设置。

所以,你应该让你的 JavaScript 代码把你想要添加的额外数据加到一个已经存在的查询字符串中(或者使用 jQuery 的 ajax 选项中的 data 属性)。

3

你的Python代码是在服务器上运行的,而你的JavaScript代码(如上所述)是在客户端运行的。所以你不能直接在Python代码中使用JavaScript的变量。你需要做的是将你想要从客户端发送到服务器的数据通过几种方式发送过去。

其中一种方式叫做“ajax”。这个客户端的代码会把变量foo的内容作为“fooParameter”参数通过POST请求发送到服务器:

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文档维基百科关于ajax的文章

撰写回答