【发布时间】:2022-01-02 02:53:13
【问题描述】:
我有一个紧急任务来制作一个网页,允许用户输入一些数据,后端进行一些计算,结果需要显示在输入字段下方的同一页面中(如机票在线价格检查) .
我是 django 和 html 的新手。下面是我的第一个简单的在线计算器测试网页,试图弄清楚如何制作这样的网络服务。
我发现一个问题,当点击“提交”按钮时,它往往会跳转到一个新的网页或一个新的网页标签。这不是我想要的。一旦用户输入数据并单击“提交”按钮,我希望页面上的“结果”字段直接显示结果(即仅部分更新此字段)而不刷新/跳转到新页面。我也希望用户输入数据在点击“提交”后保留在同一页面中。
我看到可能有几种不同的方式来完成这项工作,iframe/AJAX。但是,我已经搜索/尝试了几天的答案和解决方案,但没有一个答案真正适用于这个非常基本的简单问题!
html:
<form method="POST">
{% csrf_token %}
<div>
<label>num_1:</label>
<input type="text" name="num_1" value="1" placeholder="Enter value" />
</div>
<div>
<label>num_2:</label>
<input type="text" name="num_2" value="2" placeholder="Enter value" />
</div>
<br />
<div>{{ result }}</div>
<button type="submit">Submit</button>
</form>
view.py
def post_list(request):
result = 0
if request.method == "POST":
num1 = request.POST.get('num_1')
num2 = request.POST.get('num_2')
result = int(num1) + int(num2)
print(request.POST)
print(result)
context = {
'result': result
}
return render(request, 'blog/post_list.html', context)
【问题讨论】:
标签: html jquery django ajax forms