我改变了关于如何填充用户页面的想法。以前用户会从下拉列表中选择一个值,而AJAX调用将获取一些数据。工作代码如下所示:
HTML:
<h3>Experimenter: {{ request.user }}</h3>
<h3>Response Surface: {{ surfaceModel }}</h3>
<form action="">
<h4>
<select id = "selectRS" name="selectRS">
<option value="intro">Intro</option>
<option value="intro2">Intro 2</option>
<option value="welding">Welding</option>
</select>
</h4>
</form>
JavaScript的:
...
var levels = {{ dlevels }}; // dlevels is an integer
var mtx_data = {{ mtx_init }}; //mtx_init is a 2-d array
var rspSrf = document.getElementById("selectRS").value;
...
$.ajax({ ...
这很好用。但我现在想通过url传递值,所以我将JavaScript更改为:
var rspSrf = {{ surfaceModel }};
现在阿贾克斯没有工作。
这就是现在传递surfaceModel
的价值的方式:
url(r'^profile/intro$', 'prof_pages.views.profile', {'surfaceModel': 'intro'}, name='profile/intro'),
surfaceModel
是一个字符串,就像下拉选项一样,所以我不确定为什么它不会起作用。
我编辑了我的代码以显示更多工作代码。我只是扩展了已经工作的尝试传递字符串以及传递给js脚本的整数和数组。
答案 0 :(得分:0)
更正的代码是:
var rspSrf = "{{ surfaceModel }}";
即使传递的变量是一个字符串,它仍然需要双引号。以下参考文献显示了方式:
http://www.mutaku.com/wp/index.php/2012/03/accessing-django-template-variables-in-javascript/
也会更新标题,希望现在更清楚了 问候。