2012-08-10 48 views
0

目前我有一個包含所有選項的下拉框。提交後按下時,頁面的URL顯示提交後突出顯示的表單數據 - Django(和jQuery)

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

所以同樣的觀點重新加載重新加載所有選定變量和變量被收集和角度分析。根據選擇,數據庫中的不同數據會發送到此網頁,從而在此下拉菜單下方加載不同的表格。

是否可以在刷新後在窗體中顯示選定的數據?像這樣: My current site

到目前爲止,我只使用HTML。我想也許使用jQuery我能得到這個工作,但語言的困擾(雖然我很願意學習,如果有人知道如何用jQuery做)

SOLUTION

下克里斯的指示,我設法使這個工作。 首先,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> 

確保==和兩個變量之間有空格。

回答

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]) 
} 
+0

嗯......我試過了,但它似乎並沒有工作。即使在我的表格外面執行'{%if request.GET.var1 ==「choice1」%} hey {%endif%}'也不會打印任何東西= /。在這兩者之間,我寧願使用你的第一個選項,因爲我還不瞭解jQuery。 – SaiyanGirl 2012-08-10 21:31:50

+0

另外,我不知道它有多重要,但是我的下拉列表被加載爲'{%for d in dim%} {%endfor%}'並且在執行代碼行{ %if request.GET.var1 == {{d}}%}'我得到錯誤'無法解析餘數:'== {{d}}'': – SaiyanGirl 2012-08-10 21:54:35

+0

您不使用'{{}} } {%%}'塊內只有變量本身:'{%if request.GET.var1 == d%}' – 2012-08-13 14:29:35

1

您可以使用jQuery解析查詢字符串中的變量(here's a library),然後按照here所述填充多選字段。

+0

好吧,我將閱讀這些鏈接,看看我得到多遠:) – SaiyanGirl 2012-08-10 21:15:28