如何从 JS 发送 confirm "ok" / ""cancel" 到 Flask

How to send confirm "ok" / ""cancel" from JS to Flask

我正在尝试找到一种方法来“收集”用户的输入,比如如果用户在 JS 确认中按“确定”window,我想在 python的烧瓶,如果用户按下“取消”则为“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 变量。如果用户分别选择“确定”或“取消”,我想要一些方法将 True/False 值设置为 Flask 端的变量。

有什么方法可以实现吗?谢谢

您需要创建一个函数来收集或获取从前端到后端的输入。我经常做这个技术。

<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)