我正试图弄清楚如何做到这一点。我是新手所以请尽可能详细解释。
我在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(value)的setoptions.js中,我传递了选择框的选定索引,并使用此值我必须设置第二个选择框,此选择框的数据必须来自上面给出的views.py。 另外,我尝试了
var value_from_django = {{ dict1 }};
我遗失的其他事情是什么。能否详细解释一下。我这样做了2天。
我指的是一个简单的javascript而不是jquery。
感谢您的支持,
维奈
答案 0 :(得分:1)
除非你使用ajax调用来启动单独的请求,否则你不能将值传递给javascript,除非你做了一些非常不寻常的事情,比如将数据嵌入到响应头中(实际上不这样做,它不是什么响应标题是为了!)。响应(包括标题和正文(正文是模板生成的部分)是应用程序提供给客户端的信息总和,因此除非您生成其他请求并使用ajax获取其他响应,你别无选择。
如果您不想这样做,那么您通过模板将信息传递给javascript的选项基本上如下:
var value_from_django = {{ dict1 }};
基本上就是我在这里所说的,除了我不确定您是否可以将django中的dict传递给javascript之类的,因为django的文本输出中的dict模板不太可能是javascript变量声明的正确格式。所以,你可以...... 如果您尝试传递简单变量(如整数),则使用第一个或第三个选项可能最容易。如果您尝试传递更复杂的数据结构(如字典),您可能最好使用JSON(这就是它的用途!)
我想向您提供更详细和具体的说明,但为此您需要发布更多详细信息,了解您当前的方法究竟出现了什么问题,以及您希望的功能是什么。
顺便说一句:如果在这个页面上包含jquery并且使用它而不是尝试使用基本的javascript完全可行,你应该这样做。它会让你的生活变得更加轻松。