2012-01-20 8 views
0

私はいくつかの選択肢がある単純なフォームを持っています。それを説明する:submitを押した後、html形式で選択した値を保持

<form action="" method=GET> 
    <select name="sort"> 
     <option value="name">name 
     <option value="age">age 
     <option value="gender">gender 
     <option value="location">location 
    </select> 
    <input type="submit" value="sort"> 
</form> 

ユーザーがフォームを使用し、性別を選択して送信ボタンを押したとします。

ユーザ入力(Djangoで)に基づいてレコードをソートし、同じページをレンダリングしますが、ユーザが望むようにソートします。

私の質問:私は、どういうわけか、選択された値の性別ではなく、名前ではなく、最初のものを保持することはできますか?

+0

本当にあなたがしたいことを理解できませんでしたか? – Urban

答えて

0

は、オプションのドキュメントごとにselectedとしてそのオプションをマークし、テンプレートに戻って、現在のソートフィールドを渡し:あなたはDjangoのフォームフレームワークを使用した場合 https://developer.mozilla.org/en/HTML/Element/option

<option value="name" {% if sort == 'name' %}selected{% endif %}>name</option> 
<option value="age" {% if sort == 'age' %}selected{% endif %}>age</option> 
<option value="gender" {% if sort == 'gender' %}selected{% endif %}>gender</option> 
<option value="location" {% if sort == 'location' %}selected{% endif %}>location</option> 

これはすべて容易になるだろう。

class SortForm(forms.Form): 
    sort = forms.ChoiceField(choices=[(x, x) for x in ['name', 'age', 'gender', 'location']]) 

def myview(request): 
    form = SortForm(request.GET or None) 
    # apply sort 
    return render(request, "mytemplate.html", {'form': form}) 

{{ form.as_p }} # this would auto select whatever the form is bound with. 
+0

Riiiight、選択されたオプション!私は他のもののラジオボタンに 'チェックされた'オプションを使用していました。 私はそれを試して、それがどうなるかを見ていきます。 よろしくお願いします。 – marlboro

+0

ちょうどそれをテストし、それは働いた!再度、感謝します。 – marlboro

+0

@ user1023857、それはあなたのために働いてうれしい! –