提问人:tavalendo 提问时间:5/26/2021 最后编辑:tavalendo 更新时间:5/26/2021 访问量:1007
如何将确认“ok”/“cancel”从JS发送到Flask
How to send confirm "ok" / ""cancel" from JS to Flask
问:
我正在尝试找到一种“收集”用户输入的方法,比如说,如果用户在 JS 确认窗口中按“OK”,我想在 python 的烧瓶中收到“True”,如果用户按“取消”,则收到“False”。
我有JS函数的这个部分:
<script>
function confirmBooking(elem) {
if(confirm('Are you sure you want to book this slot?') == true) {
//elem = 1;
alert("its done: " + elem);
}
else {
return 0;
}
}
</script>
现在在“形式”方面,我有这个:
<form method="post">
<button type="submit" name="free_button" value="free_button" onClick="confirmBooking('{{ booking_slot }}')"> Free </button>
</form>
所以,在这里,booking_slot是一个包含一些字符串的 python 变量。如果用户分别选择“OK”或“cancel”,我希望通过一些方法将 True/False 值设置为 Flask 端的变量。
有什么方法可以做到这一点吗?谢谢。
答:
3赞
Mersan Canonigo
5/26/2021
#1
您需要创建一个函数来收集或获取从前端到后端的输入。我通常做这种技术。
<form action="{{url_for('/collect')}}" method="post">
<input type="hidden" id="userInput" name="userInput">
<button type="submit" name="free_button" value="free_button" onClick="confirmBooking('{{ booking_slot }}')"> Free </button>
</form>
<script>
function confirmBooking(elem) {
if(confirm('Are you sure you want to book this slot?') == true) {
//elem = 1;
alert("its done: " + elem);
document.getElementById("userInput").value = "True";
}
else {
document.getElementById("userInput").value = "False";
return 0;
}
}
</script>
@app.route('/collect',methods=["POST"])
def collect():
if request.method =="POST":
userInput = request.form.get("userInput")
return render_template('<template here>',userInput=userInput)
评论
1赞
tavalendo
5/28/2021
谢谢。这正是我想要的。效果很好。
评论