javascript - 使用 location.reload() 似乎可以防止 php 更新数据库

标签 javascript php mysqli bootbox

被这个问题困扰了一段时间,不知道我做错了什么。以下代码使用 bootbox.js 按钮删除我正在使用的社交网络上的帖子:

    <script>

    $(document).ready(function() {

        $('#post<?php echo $p_id; ?>').on('click', function() {
            bootbox.confirm("Are you sure you want to delete this post?", function(result) {

                $.post("./includes/form_handlers/delete_post.php?post_id=<?php echo $p_id; ?>", {result:result});
                /*This breaks*/
                //if(result)
                   //location.reload();


            });
        });


    });


    </script>

出于某种原因,调用 location.reload 似乎阻止了我的 php 处理程序执行 sql 语句(这是一个简单的更新查询)。奇怪的是,当它被注释掉时,数据库更新没有问题。

有人可以向我解释一下并可能推荐一个解决方案吗?

最佳答案

您在 HTTP 调用和页面重新加载之间进行竞争。页面重新加载将终止 http 请求,它不会等待它完成。

所以解决方案是将重新加载行移到成功回调中。

$.post("./includes/form_handlers/delete_post.php?post_id=<?php echo $p_id; ?>", {result:result})
  .done( function(){ window.location.reload(true); });

关于javascript - 使用 location.reload() 似乎可以防止 php 更新数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44803462/

相关文章:

javascript - 有条件地组合两个可观察量

php - 在大型现有项目中包含 js 库之前需要考虑的事项

javascript - 如何使用文本中的单词来搜索MySQL表?

php - 如何在 Yii2 上使用 mysqli_info

php - 自定义 PHP 函数错误 : no variable being returned

javascript - 使用 JavaScript 阅读 KMZ

javascript - 添加节点未正确链接到现有节点

php - 使用 php 创建消息

php - PHP Echo 中的 SQL 语句,HTML 标记中的 SQL 语句

php - 看起来 SQL 的 WHERE 子句和 JOIN 不能一起工作