2016-09-06 88 views
0

我有一個不同分辨率的大腦模型,我想讓用戶通過從選擇標籤中選擇他想要的分辨率來更改模型的分辨率。使用javascript變量與Django模板

我的意思是我已經加載完整的模型,並沒有發送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是因爲有很多其他的事情,用戶已經繪製和做,他可能要改變的振振有辭分辨大腦模型以獲得更好的視野或表現,但他想讓其他物體保持在場景中

非常感謝。

+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請求進行頁面加載後執行此操作。