如何访问Web2py'中python代码中的JavaScript变量;s视图

How to access the JavaScript variable in the python code in Web2py's view

本文关键字:代码 python JavaScript 视图 变量 何访问 访问 Web2py      更新时间:2023-09-26

我试图将下拉菜单"product"的值存储在javaScript变量中,然后尝试在Web2py框架的html视图中的Python代码中使用该变量,以进一步创建其他组件的下拉菜单。我尝试了两种不同的方法,但都不起作用。我想使用从"产品"下拉列表中选择的关键字对数据库进行查询,从而生成第二个下拉列表。

<script>
        function run()
        {
            var e = document.getElementById('local_product');
            var strUser = e.options[e.selectedIndex].text;
            document.getElementById('div_release').innerHTML =' <label>Release : </label> {{rows1 = db(db.Builds.Build.like('"}}strUser%{{'"")).select()}} <select> {{for r1 in rows1:}}<option>{{=r1.Build}}</option> {{pass}}</select>'

    or
        document.getElementById('div_release').innerHTML =' <label>Release: </label> {{rows2=db.executesql("Select Build from Builds where Build like'"request.vars.prod_tab'"" )}} <select> {{for r1 in rows2:}}<option>{{=r1}}</option> {{pass}}</select>'
 }
</script>
<form method="POST" action="" name="product_filter">
<label>Product: </label>
<select id="local_product" onchange="run()" name=prod_tab >
{{ for r in product_list: }}
<option value="{{r}}">
{{=r}}
</option>
{{pass}}
</select>
{{pass}}
<input type="Submit" name=Set Value="Set">
<form>

web2py视图中的Python代码是在页面发送到浏览器之前在服务器上执行的,因此不可能在浏览器中执行任何Python代码来响应用户操作。相反,您必须向服务器发送Ajax请求,以检索要注入到页面中的其他数据。关于如何实现你想要的想法,请看这个答案。