Django Выпадающие данные опции GET
Я хотел получить выбранный текст из выпадающего списка, но я получаю значение, если использую request.GET['Type']
. Я хотел
получить Data001
вместо Value001
def index(request):
print("The output: ",request.POST.get('Type'))
return render(request,'index.html',content)
<div class="form-row last">
<div class="form-wrapper">
<label for="">Meeting Type</label>
<select id="Type" name="Type" class='form-control'>
<option disabled="disabled" selected="selected">Choose option</option>
<option value='Value001'>Data001</option>
</select>
</div>
</div>
<div class="form-wrapper">
<button data-text="Book" type="submit" name="action" value="book">
<span>Book</span>
</button>
</div>
Пожалуйста, обратите внимание, что есть 30+ выпадающих опций и я должен использовать значения в выпадающем списке. Пожалуйста, помогите мне получить выбранный вариант вместо значения
Итак, если это используется для целей фильтрации и вы не можете изменять значения внутри тегов option
.
Тогда вы можете использовать AJAX
, вы можете получить .innerHTML выбранного варианта, и передать это как dict
в вашу views.py
функцию
views.py
def ajax_option(request):
print("The output: ",request.POST.get('Type'))
return render(request,'ajax_option.html')
urls.py
path('ajax_option/', views.ajax_option, name="ajax_option"),
.html
<div class="form-row last">
<div class="form-wrapper">
<label for="">Meeting Type</label>
<select name="Type" class='form-control' onchange="onchangehit(this.options[this.selectedIndex].text)">
<option disabled="disabled" selected="selected">Choose option</option>
<option value='Value001'>Data001</option>
<option value='Value002'>Data002</option>
</select>
</div>
</div>
<div class="form-wrapper">
<button data-text="Book" type="submit" name="action" value="book">
<span>Book</span>
</button>
</div>
AJAX, прямо над тегом body
<script type="text/javascript">
function onchangehit(data) {
console.log(data);
$.ajax({
type: "POST",
url: "{% url 'ajax_option' %}",
async: true,
data: {
Type: data,
csrfmiddlewaretoken: '{{ csrf_token }}',
},
success: function () {},
failure: function () {}
});
}
</script>
добавьте новый тег input со скрытым типом. добавьте слушатель события onchange на select с идентификатором "Type". в функции обратного вызова слушателя события замените значение тега input на внутренний текст измененного значения в select
таким образом, вы можете использовать его без ajax a