如何在Web2py的视图中访问python代码中的JavaScript变量

时间:2016-05-12 06:35:35

标签: javascript python html web2py

我正在尝试将下拉“product”的值存储在javaScript变量中,然后尝试在Web2py框架的html视图中使用Python代码中的该变量来进一步创建其他组件的下拉列表。 我尝试了两种不同的方式,但它们都没有用。 我想使用从Product下拉列表中选择的关键字对数据库进行查询,从而生成第二个下拉列表。

<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>

1 个答案:

答案 0 :(得分:0)

web2py视图中的Python代码在页面发送到浏览器之前在服务器上执行,因此无法在浏览器中执行任何Python代码以响应用户操作。相反,您必须向服务器发送Ajax请求以检索要在页面中注入的其他数据。有关如何实现所需目标的建议,请参阅this answer