Javascript 如何存储JQuery提交的变量并在Python/Django项目的后期重用它?
我使用Python2.7和Django 1.6开发了一个应用程序,它使用下面的滑动条,允许用户使用多页Javascript 如何存储JQuery提交的变量并在Python/Django项目的后期重用它?,javascript,python,django,slider,jquery-ui-slider,Javascript,Python,Django,Slider,Jquery Ui Slider,我使用Python2.7和Django 1.6开发了一个应用程序,它使用下面的滑动条,允许用户使用多页SessionWizardView表单对各种图像进行评级。用户评级存储在变量值中 作为要求之一,每个用户都必须在表单的后续页面上验证他们对每个图像的评分。因此,我必须重新显示每个图像以及滑块,该滑块必须显示与用户先前给出的图像相同的评级。例如,如果用户先前将图像评级为“+19”,则在用户第二次看到图像时,滑块必须设置为“+19” 我已经让应用程序重新显示图像,我可以很容易地添加一个滑块到每个。但
SessionWizardView
表单对各种图像进行评级。用户评级存储在变量值中
作为要求之一,每个用户都必须在表单的后续页面上验证他们对每个图像的评分。因此,我必须重新显示每个图像以及滑块,该滑块必须显示与用户先前给出的图像相同的评级。例如,如果用户先前将图像评级为“+19”,则在用户第二次看到图像时,滑块必须设置为“+19”
我已经让应用程序重新显示图像,我可以很容易地添加一个滑块到每个。但是我不知道如何让新的滑块从以前提交的值开始。注意:有多个相同形式的图像,每个图像都需要验证
问题:如何存储JQuery提交的变量并在Python/Django项目的后期重用它
$(function () {
var initX=0,minX=50,width=400;
var slider = $('#slider'),
tooltip = $('.tooltip');
slider.slider({
min: -50,
max: +50,
value: 0,
start: function (event, ui) {
tooltip.fadeIn('fast');
},
slide: function (event, ui) {
var value = slider.slider('value'),
volume = $('.volume');
console.log(value)
tooltip.css('left', initX+(value*width)/100).text(ui.value); accordingly
},
stop: function (event, ui) {
},
});
initX=slider.slider("value");
var txt=initX;
initX+=(minX*width)/100;
tooltip.css('left',initX).text(txt);
});
我最初想使用Python/Django滑块,但始终无法找到一个运行良好的滑块
任何帮助,甚至建议我应该从哪里开始寻找,都将不胜感激。这是我第一次构建应用程序,所以每一步对我来说都是新的
谢谢您有两种选择来持久保存帖子中的值:按照@Pointy的建议,通过Django模型实例将其存储在数据库中,或者您可以在会话中暂时保留它,完成其余步骤,并执行需要执行的任何操作 您可以轻松地将值从Django视图传递到JavaScript。此示例显示如何传入已发布的值,或使用初始GET中的值
# views.py
def your_view(request):
if request.method == 'POST':
foo = request.POST.get('foo')
else:
foo = 'bar'
return render('your_template.html', {'foo': foo})
# your_template.html
<p>Some html</p>
<script>
var foo = '{{ foo }}';
</script>
#views.py
定义您的_视图(请求):
如果request.method==“POST”:
foo=request.POST.get('foo')
其他:
foo='bar'
返回render('your_template.html',{'foo':foo})
#您的_template.html
一些html
var foo='{{foo}}';
如果JavaScript位于外部文件中,则始终可以在包含之前的脚本块中设置值,以便外部文件可以拾取这些值:
<script>
var foo = '{{ foo }}';
</script>
<script src="{% static 'js/your-file.js' %}"></script>
var foo='{{foo}}';
希望这对您有所帮助。我认为一般的答案是“使用数据库”。您想在前端还是后端持久化数据?@Arvoreniad我不确定“持久化”是什么意思?如果有帮助的话,我想在后端存储用户的最终提交?是的,在这种情况下,我认为数据库确实是最好的选择。@Pointy我已经添加了一个MySQL数据库作为后端,我正在尝试使用phpMyAdmin来探索它。我对此很陌生,但是在最后一页表单完全提交之前,JQuery滑块的提交值是否会在后端可用?谢谢您的帮助/建议。首先,我必须使用MySQL,但我会把你的建议保留在以后的帖子中。我确信对我来说,最简单/最快的解决方案是在会议期间暂时举行会议。感谢您提供了将值从Django传递到JS的示例,但是我如何做相反的事情呢?所以我可以从JS滑块中获取原始值。谢谢,您需要将表单值发布到一个视图中,在那里您可以将它们设置到会话中。查看Django文档中的示例。