如何在 Web2py 的视图中访问 python 代码中的 JavaScript 变量
How to access the JavaScript variable in the python code in Web2py's view
我试图将下拉列表 'product' 的值存储在 javaScript 变量中,然后尝试在 Python 代码中使用该变量 html Web2py 框架的视图,以进一步为其他组件创建下拉列表。
我尝试了两种不同的方法,但它们都不起作用。
我想使用从“产品”下拉列表中选择的关键字对数据库进行查询,从而生成第二个下拉列表。
<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>
Python web2py 视图中的代码在页面发送到浏览器之前在服务器上执行,因此不可能在浏览器中执行任何 Python 代码以响应用户操作.相反,您必须向服务器发送 Ajax 请求以检索要注入到页面中的额外数据。有关如何实现您想要的想法,请参阅 this answer。
我试图将下拉列表 'product' 的值存储在 javaScript 变量中,然后尝试在 Python 代码中使用该变量 html Web2py 框架的视图,以进一步为其他组件创建下拉列表。 我尝试了两种不同的方法,但它们都不起作用。 我想使用从“产品”下拉列表中选择的关键字对数据库进行查询,从而生成第二个下拉列表。
<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>
Python web2py 视图中的代码在页面发送到浏览器之前在服务器上执行,因此不可能在浏览器中执行任何 Python 代码以响应用户操作.相反,您必须向服务器发送 Ajax 请求以检索要注入到页面中的额外数据。有关如何实现您想要的想法,请参阅 this answer。