Javascript 如何存储JQuery提交的变量并在Python/Django项目的后期重用它?

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” 我已经让应用程序重新显示图像,我可以很容易地添加一个滑块到每个。但

我使用Python2.7和Django 1.6开发了一个应用程序,它使用下面的滑动条,允许用户使用多页
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文档中的示例。