0

現在、すべてのオプションを含むドロップダウン ボックスがあります。送信が押された後、URL で選択されたすべての変数でページがリロードされます

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

したがって、同じビューが再ロードされ、ビューによって変数が収集および分析されます。選択に基づいて、データベースからのさまざまなデータがこの Web ページ ページに送信されるため、このドロップダウン メニューの下にさまざまなテーブルが読み込まれます。

選択したデータを更新後にフォームに表示することはできますか? このようなもの: 現在のサイト

これまでは HTML のみを使用してきました。おそらくjQueryを使用してこれを機能させることができると思いましたが、言語は困惑しています(ただし、誰かがjQueryでそれを行う方法を知っていれば、喜んで学びます)

解決

Chris の指示の下で、なんとかこれを機能させることができました。まず、Chris のソリューションでうまくいかなかったのは request.GET メソッドです。したがって、呼び出す VIEW return render_to_response('website.html')(対応するビュー) 内に、次のコードを追加しました。

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 つの変数の間にスペースがあることを確認してください。

4

2 に答える 2

1

jQueryを使用して、クエリ文字列から変数を解析し(これがそのためのライブラリです)、ここで説明するように複数選択フィールドにデータを入力できます。

于 2012-08-10T21:14:04.900 に答える
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])
}
于 2012-08-10T21:15:05.193 に答える