2016-09-06 3 views
0

私は異なる解像度の脳モデルを持っており、選択タグから希望の解像度を選択するだけでモデルの解像度を変更できるようにしたいと考えています。djangoテンプレートでjavascript変数を使用する

私は完全なモデルがロードされていることを意味し、サーバーにPOSTを送信することなく、私は脳モデルのビューを変更したいと思います。

問題は、選択したdjangoタグの読み取り値を渡して、適切なmoedlをレンダリングすることができないということです。

これは私のコードです:

<body> 
    <select id="resolution_options" onchange="change_brain_resolution()" name="resolution_options"> 

     {% for brain in brains %} 
      <option value="{{ brain.resolution }}"> 
       {{ brain.resolution_title }} 
      </option> 
     {% endfor %} 
    </select> 


<script> 

function change_brain_resolution() {  

     var selcted_resolution = getElementById('resolution_options').value; 

     {% for brain in brains %} 

      // Here is my problem !! 
      {% if brain.resolution == selcted_resolution %} 

       // Do drawing 

      {% endfor %}  
    } 

</script> 

</body> 

私はPOSTを行うにはしたくない理由のresonは、他の多くのものがあるので、ユーザが描画してやっと、彼は変更することもされていていますより良い見解やパフォーマンスを得るために脳モデルの解像度を向上させますが、シーン内に他のオブジェクトを保持したい場合

ありがとう、ありがとうございます。

+1

あなたが欲しいのはAJAXです。この投稿をチェックしてください:http://stackoverflow.com/questions/20306981/how-do-i-integrate-ajax-with-django-applications –

答えて

0

はこれを試してみてください:

function change_brain_resolution() {  

    var selcted_resolution = getElementById('resolution_options').value; 

    {% for brain in brains %} 

     if (selcted_resolution == {{ brain.resolution }}) { 
      // Do drawing 
     } 

    {% endfor %}  
} 

これは、クライアント側のすべての脳の解像度のためのロジックを入れてしまいます。より効率的にするには、AJAXを使用して選択した解像度をサーバーに渡し、応答をレンダリングする必要があります。

テンプレートはページの前にレンダリングされるため、javascript変数の値にアクセスすることはできません。 JavaScriptの変数をサーバーに渡したい場合は、AJAXリクエストを使ってページをロードした後に実行する必要があります。

関連する問題