Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/475.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用django模板中Javascript变量的值呈现模板上下文_Javascript_Django - Fatal编程技术网

使用django模板中Javascript变量的值呈现模板上下文

使用django模板中Javascript变量的值呈现模板上下文,javascript,django,Javascript,Django,请不要将此问题标记为无效。我在stackoverflow中没有发现与下面提到的问题有关的任何问题 我有一个django模板。我将以下上下文传递给它 context = { '1_title': 'Title 1', '2_title': 'Title 2', '3_title': 'Title 3', '4_title': 'Title 4', } return render(request, 'index.html', context) 我有一个HTML文件,其中有一个下拉列表。下拉列表的值

请不要将此问题标记为无效。我在stackoverflow中没有发现与下面提到的问题有关的任何问题

我有一个django模板。我将以下上下文传递给它

context = {
'1_title': 'Title 1',
'2_title': 'Title 2',
'3_title': 'Title 3',
'4_title': 'Title 4',
}
return render(request, 'index.html', context)
我有一个HTML文件,其中有一个下拉列表。下拉列表的值类似于1,2,3,4。我已经向它注册了onClick函数

我需要实现这个功能。我将在onClick函数中获取值。然后,我将把接收到的值与_title连接起来,并向其存储一个javascript变量。现在我需要使用该javascript变量来引用django上下文。我无法做到这一点。我在stackoverflow上做了大量的搜索。似乎没有人回答我的问题

javascript函数如下所示:

function getContextValue(value) {
var key = value + '_title'; 
return {{ key }}
}
如果我在下拉列表中选择1,则上述函数的键将作为1_标题。我需要从上下文返回1_title值,即title 1

对我来说,它不工作,只返回1_标题。我甚至尝试返回{{'key'}}。在这种情况下,它返回key


请对我好一点。这对你来说可能是个简单的问题,但对我来说不是。

如果你想访问JS中的上下文信息,你需要以某种方式将其交付给JS

将您的上下文更改为类似这样的内容,以便在模板中更容易访问

context = {}
context['data_for_select'] = {
'1_title': 'Title 1',
'2_title': 'Title 2',
'3_title': 'Title 3',
'4_title': 'Title 4',
}
return render(request, 'index.html', context)
我假设模板中有类似的内容:

<select name="dropdown">
  {% for key, title in data_for_select.items %}
    <option value="{{key}}">{{title}}</option>
  {% endfor %}
</select>
您可以在JS中使用它,如:

var data = JSON.parse(document.getElementById('select-data').textContent);

通过这种方式,您已经向JS公开了模板上下文数据。

我添加了一个关于如何向JS公开模板上下文数据的通用答案。我不确定这是否是你想要的。不管怎样,我希望它为你指明了正确的方向。
var data = JSON.parse(document.getElementById('select-data').textContent);