我试图将下拉的“产品”的值存储在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>

最佳答案

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

10-04 21:00