AJAX/JSON POST请求不处理HTML请求

2024-04-26 21:07:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试更新网页,以便在按下delete按钮时,从表中删除附加的行,并将消息的uid值发送到Flask路由,以便我可以处理请求以实际更改数据库中消息的状态。但是,请求不发送。我可以获取要删除的行,并尝试使用表单进行更新,但需要使用delete函数来返回除编辑HTML中的更新部分之外的任何其他值

路线

@bp.route("/delete", methods=['GET','POST'])
def delete():
    data = request.get_json() 
    data=delete(data, g.user)
    return Response(dumps(data), mimetype="application/json")

inbox.html

<h1><b>Messages: </b></h1><div id="update">  </div>  
     <div class="table-responsive"
 <table class="table table-bordered table-hover table-striped">
          <tr>
            <th></th>
            <th>Status</th>
            <th>Actions</th>
            <th>Date</th>
            <th>From</th>
            <th>To</th>
            <th>Subject</th>
            <th>Body</th>
            <th>References</th>
          </tr>

 {% for m in messages %}
          {%if m.status!="deleted"%}
            <tr > 
              <td><a class="btn btn-light" id="view" onClick="window.open('{{url_for('open_messages',message_id=m.message_uid)}}','View','resizable,height=500,width=500'); return false;" >View</a>
              <input type="hidden" name="message_uid" value={{m.message_uid}} id="message_uid" /> <input type="submit" class="btn-sm btn-secondary" value="Delete" /></td>

              <td>{{m.date}}</td>
              <td>{{m.sender}}</td>
              <td>{{m.recipient_username}}</td>

              <td>{{m.subject}}</td>
              <td>{{m.body}}</td>
              <td>{{m.references}}</td>
            </tr>
            {%endif%}
          {% endfor %}
      
           </table>
   
            <script>
        $(document).on("click",".delete", function(e) {
                e.preventDefault()
                var id = $(".message_uid").val();
                delete_id(id);
                $(this).parents("tr").remove();
            });

     function delete_id(id) {
                data = {
                    "id": id
                }
                console.log(data)
                $.ajax({
                    type:"POST",
                    url: "/delete",
                    contentType: "application/json",
                    data: JSON.stringify(data),
                    success: function(data){
                        //displays dates if set
                        $("#update").html("Message Deleted");
                        console.log(data)
                    }
                });

            };
            </script>

数据库处理

def delete(message_uid, user):
    text="MATCH (m:MESSAGE) WHERE m.UID='{message_uid}' SET m.{user}_status='deleted' RETURN m".format(message_uid=message_uid, user=user)
    verify=neo_execute(text)
    return verify