2016-05-12 14 views
1

ドロップダウン '製品'の値をjavaScript変数に格納し、その変数をPythonコードでhtmlビューで使用しようとしています。 Web2pyフレームワークを使用して、他のコンポーネントのドロップダウンをさらに作成します。 2つの方法で試しましたが、どちらもうまくいきませんでした。 Productドロップダウンから選択されたキーワードを使用してデータベースに対してクエリを実行し、2番目のドロップダウンを生成したいとします。ページがブラウザに送信される前に、web2pyのビューでWeb2pyのビューでPythonコードのJavaScript変数にアクセスする方法

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

答えて

0

Pythonのコードは、サーバー上で実行されるので、ユーザーのアクションに応じて、ブラウザ内の任意のPythonコードを実行することはできません。代わりに、Ajaxリクエストをサーバーに送信して、ページに挿入する追加データを取得する必要があります。あなたが望むものを達成するためのアイデアについては、this answerを参照してください。

関連する問題