2012-01-20 5 views
0

У меня есть простая форма с несколькими вариантами выбора. Чтобы проиллюстрировать это:сохранить выбранное значение в форме 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 в соответствии с опционными документами: 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, выбранный вариант! Я использовал параметр «checked» для переключателей для других вещей. Я попробую и посмотрю, как это происходит. Приветствия для этого. – marlboro

+0

Просто протестировал его, и все получилось! Еще раз спасибо. – marlboro

+0

@ user1023857, рад, что это сработало для вас! –

Смежные вопросы