【发布时间】:2019-04-10 05:33:11
【问题描述】:
在过去的几天里,我尝试在后端学习使用 AJAX 和 django 提交表单。
我可以在 django views.py (validate_number) 中使用 AJAX 成功地获取表单输入值(工作)遵循此 example 。
在这个 views.py validate_number 我计算新的数字总和,我希望这个总和值呈现回 html 页面,但我不知道该怎么做。
知道如何将 AJAX 请求的结果返回到 html 页面吗?
这里是代码
html 表单:
<form id="form" action='' data-validate-number-url="{% url 'validate_number' %}" method="POST" enctype="multipart/form-data">{% csrf_token %}
<div class="form-group col-md-6">
Select the C Raster Dataset:<br>
<select name="CC" class="form-control" id="CC">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
Select the P:<br>
<select name="PP" class="form-control" id="PP">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
Select the F:<br>
<select name="FF" class="form-control" id="FF">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
</div>
<button type="button" class="btn btn-primary next-step1">Save and continue</button>
<p>{{sum}}</p>
Select the GG:<br>
<select name="G" class="form-control" id="GG">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
Select the JJ:<br>
<select name="JJ" class="form-control" id="JJ">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
</select>
<button type="button" class="btn btn-primary next-step">Save and continue</button>
Select the FINAL:<br>
<select name="FINAL" class="form-control" id="FINAL">
<option value="1">one</option>
<option value="2">two</option>
<option value="3">three</option>
<option value="10">ten</option>
</select>
<button type="submit" class="btn btn-primary">Save</button>
</form>
AJAX
$(".next-step1").click(function (e) {
var form = $(this).closest("form");
var number1 = $("#CC").val();
var number2 = $("#PP").val();
$.ajax({
url: form.attr("data-validate-number-url"),
data: {
'number1': number1,
'number2':number2
},
dataType: 'json',
success: function (data) {
}
});
urls.py:
url(r'^details/(?P<slug>[^\.]+)/$', views.blog_details, name='blog_details'),
url(r'^ajax/validate_number/$', views.validate_number, name='validate_number'),
views.py
def blog_details(request,slug):
posts=mymodel.objects.all()
post=get_object_or_404(posts, slug_title=slug)
return render(request,'index.html',{'post':post})
def validate_number(request):
number1 = request.GET.get('number1', None)
print number1
number2 = request.GET.get('number2', None)
print number2
sum=int(number1)+int(number2)
return JsonResponse(sum)
【问题讨论】:
标签: python jquery html ajax django