显示提交后突出显示的表单数据 - Django(和jQuery)

时间:2012-08-10 21:07:17

标签: jquery html django

目前我有一个包含所有选项的下拉框。按下提交后,页面将重新加载URL中的所有选定变量

http://127.0.0.1:8000/website/?var1=choice1&var2=choice3

因此重新加载相同的视图,并由视图收集和分析变量。根据选择,将来自数据库的不同数据发送到此网页页面,从而在此下拉菜单下方加载不同的表格。

刷新后是否可以在表单中显示所选数据?像这样的东西: My current site

到目前为止,我只使用过HTML。我想也许使用jQuery我可以让它工作,但语言令人困惑(虽然我很愿意学习,如果有人知道如何用jQuery做)

根据克里斯的指示,我设法让它发挥作用。 首先,与Chris的解决方案无关的是request.GET方法。因此,在调用return render_to_response('website.html')的VIEW内(所以相应的视图),我添加了以下代码:

requestDict = request.GET

return render_to_response('optionset.html', {'request':requestDict}) 

因此,在我的模板中,我执行了以下操作:

<form action="" name="OptionSetForm">
     <select name="var1" size=2>
     <OPTGROUP LABEL="FirstPickHere">
            <option {% if request.var1 == "Choice1" %} selected="selected"{% endif %}>Choice1</option>
            <option {% if request.var1 == "Choice2" %} selected="selected"{% endif %}>Choice2</option>
            <option {% if request.var1 == "Choice3" %} selected="selected"{% endif %}>Choice3</option>
    </OPTGROUP>
    </select>
</form>

确保==和两个变量之间有空格。

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery从查询字符串(here's a library中)解析变量,然后按照here所述填充多选字段。

答案 1 :(得分:1)

由于您使用的是选择框,因此您需要在每个选项中添加以下内容:

<option value="choice1"{% if request.GET.var1 == "choice1" %} selected="selected"{% endif %}>Choice 1</option>

或者,如果您更愿意使用jQuery:

var queryString = window.location.search.substring(1);
var params = queryString.split('&');
for (var i=0; i<params.length; i++) {
    var param = params[i].split('=');
    $('[name='+param[0]+']').val(param[1])
}