2012-10-28 47 views
0

它已經2day我想弄清楚如何做到這一點。我是新手,請儘可能詳細解釋。簡單的應用程序傳遞值從Django的意見到JavaScript

我在我的views.py

dict1 = simplejson.dumps(dict1) 
return render_to_response('main_page.html', { 
        'js_testsuite':testsuite_dict, 
        'js_testset':js_testset, 
        'dict1':dict1}) 

在main_page.html

{% if js_testsuite %}    
<select id="testsuites" name="testsuite" onchange="setOptions(document.selection.testsuite.selectedIndex);"> 
    {% for key, value in js_testsuite.items %} 
      <option value={{ value }} name="testsuite">{{ key }}</option> 
    {% endfor %} 
</select> 
{% endif %} 

在setoptions.js,其中包含函數setOptions(值)這樣做,到我傳遞選擇框的選定索引,使用這個值我必須設置第二個選擇框,這個選擇框的數據必須來自上面給出的views.py。 此外,我試圖做

var value_from_django = {{ dict1 }}; 

什麼是我失蹤的其他事情。你能否提供一個詳細的解釋。我一直在試2天。

  • 有沒有一種方法可以將django視圖的值直接繞過django模板傳遞給javascript?
  • 我可以將django視圖的信息傳遞給html模板,然後傳遞給javascript?

JavaScript我指的是一個簡單的JavaScript而不是jquery。

感謝您的支持,

維奈

回答

1

,除非你使用Ajax調用來啓動一個單獨的請求或您無法通過繞過模板值的JavaScript,除非你做的東西非常不尋常的像嵌入數據在響應頭中(實際上不這樣做,它不是響應頭的!)。包含標題和正文(正文是模板生成的部分)的響應是應用程序提供給客戶端的信息總和,因此除非您生成附加請求並使用ajax獲取附加響應,你沒有別的選擇。

如果你不想這樣做,那麼你對通過模板的JavaScript傳遞信息的選項基本上都是如下:

  • 使用內嵌標籤,動態地創建格式正確的的JavaScript通過模板系統。你所擁有的示例行var value_from_django = {{ dict1 }};基本上就是我在這裏討論的內容,除了我不確定你是否可以通過從django傳遞字典到像這樣的javascript,因爲django在模板中的字典輸出不太可能是一個javascript變量聲明的正確格式。因此,您可以...
  • 將數據轉換爲JSON並將其放入您的模板中,然後使用javascript處理該數據。 (這通常是通過ajax調用完成的,但是沒有什麼能夠阻止您直接將JSON數據注入到初始模板中。)
  • 或者用您想要的數據填充您的HTML,然後使用javascript找到包含數據並解析數據。

如果您嘗試傳遞整數這樣的簡單變量,最簡單的做法可能是使用第一個或第三個選項。如果你想通過像字典這樣的更復雜的數據結構,你可能會更好地使用JSON(這就是它的目的!)

我想給你更詳細和具體的指示,但爲了你將需要發佈更多關於您當前的方法到底出錯的細節以及您期望的功能是什麼。順便說一句:如果在這個頁面上包含jquery並且使用它而不是嘗試使用基本的javascript,那麼你應該這樣做。它會讓你的生活變得更加輕鬆。

+0

謝謝安德魯,它調整了一些後。我可以將字典傳遞給javascript。現在,即時通訊嘗試在JavaScript中解碼該字典。 – Vinay

+0

關於JSON如何與JS進行交互,請參閱http://www.json.org/js.html(我假設您使用的是JSON) –

相關問題