姜戈 |使用 ajax (jquery) 而非 id 显示来自 select 选项的名称值
django | display the name value from select option with ajax (jquery) not the id
这是ajax代码
$('.addtasksubmit').click(function(e) {
e.preventDefault();
$.ajax({
url: 'addtodo',
type: "POST",
data: {
title: $('#task-title').val(),
category: $('#catsel option:selected').val(),
'csrfmiddlewaretoken':$('input[name=csrfmiddlewaretoken]').val()
},
success: function(response) {
console.log(response)
$('.todos-box').append(`
<a href="#" class="category-link">${response.category}</a>
`)
$("#addtodo").trigger('reset');
$("#exampleModal").modal('hide');
}
})
})
所以 ${response.category} 给了我类别的 id 但我需要类别名称才能被查看
这是views.py
response = {
'title': request.POST['title'],
'category' : request.POST['category'],
}
todo = Todo.objects.create(title=response['title'],
category=Category.objects.get(id=response['category']),
user=request.user)
todo.save()
return JsonResponse(response, safe=False)
这是HTML
<select name="category" class="form-select form-select-sm" id="catsel">
<option seleted>Choose Category</option>
{% for category in categories %}
<option value="{{ category.id }}">{{ category }}</option>
{% endfor %}
</select>
有没有办法查看 ajax 而不是 id 的类别名称?或者我怎样才能得到类别的名称及其 id。
抱歉我的英语不好..
使用模板中的类别获取 HTML select 输入会很有帮助。根据您发布的内容,请将 views.py 调整为
todo = Todo.objects.create(title=response['title'],
category = Category.objects.get(id=response['category']),
user=request.user)
todo.save()
response = {
'title': request.POST['title'],
'category' : category.name,
}
return JsonResponse(response, safe=False)
经过5天的尝试,我已经解决了这个问题。
已将其添加到视图中
response['category']=Category.objects.filter(id=category)
.values('name').first()
data = json.dumps(response)
return HttpResponse(data)
和ajax
<div class="category-list flex-1">
<a href="#" class="category-link">${response['category'].name}</a>
</div>
还添加了dataType: 'json'
这是ajax代码
$('.addtasksubmit').click(function(e) {
e.preventDefault();
$.ajax({
url: 'addtodo',
type: "POST",
data: {
title: $('#task-title').val(),
category: $('#catsel option:selected').val(),
'csrfmiddlewaretoken':$('input[name=csrfmiddlewaretoken]').val()
},
success: function(response) {
console.log(response)
$('.todos-box').append(`
<a href="#" class="category-link">${response.category}</a>
`)
$("#addtodo").trigger('reset');
$("#exampleModal").modal('hide');
}
})
})
所以 ${response.category} 给了我类别的 id 但我需要类别名称才能被查看
这是views.py
response = {
'title': request.POST['title'],
'category' : request.POST['category'],
}
todo = Todo.objects.create(title=response['title'],
category=Category.objects.get(id=response['category']),
user=request.user)
todo.save()
return JsonResponse(response, safe=False)
这是HTML
<select name="category" class="form-select form-select-sm" id="catsel">
<option seleted>Choose Category</option>
{% for category in categories %}
<option value="{{ category.id }}">{{ category }}</option>
{% endfor %}
</select>
有没有办法查看 ajax 而不是 id 的类别名称?或者我怎样才能得到类别的名称及其 id。
抱歉我的英语不好..
使用模板中的类别获取 HTML select 输入会很有帮助。根据您发布的内容,请将 views.py 调整为
todo = Todo.objects.create(title=response['title'],
category = Category.objects.get(id=response['category']),
user=request.user)
todo.save()
response = {
'title': request.POST['title'],
'category' : category.name,
}
return JsonResponse(response, safe=False)
经过5天的尝试,我已经解决了这个问题。
已将其添加到视图中
response['category']=Category.objects.filter(id=category)
.values('name').first()
data = json.dumps(response)
return HttpResponse(data)
和ajax
<div class="category-list flex-1">
<a href="#" class="category-link">${response['category'].name}</a>
</div>
还添加了dataType: 'json'