目前我有一个包含所有选项的下拉框。按下提交后,页面将重新加载URL中的所有选定变量
http://127.0.0.1:8000/website/?var1=choice1&var2=choice3
因此重新加载相同的视图,并由视图收集和分析变量。根据选择,将来自数据库的不同数据发送到此网页页面,从而在此下拉菜单下方加载不同的表格。
刷新后是否可以在表单中显示所选数据?像这样的东西:
到目前为止,我只使用过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>
确保==
和两个变量之间有空格。
答案 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])
}