我正在使用数据表,发布后,我想在数据库更改完成后刷新页面。但是现在,如果页面在数据库更新之前或之后刷新,则几乎是随机的。我还尝试将'success:'添加到回调函数中,但这无济于事。

datatables projects.php的脚本:

    <script> $(document).ready( function () {
var projects = $('#projects').DataTable({
        paging:true,    dom: 'Blfrtip',     colReorder: true,   select: {style: 'single'},
        buttons: [
            {
                    text: 'Edit',
                    action: function () {
                        $projectID = $(projects.row('.selected').node()).data('id');
                        if ($projectID === undefined)
                        {
                            alert("Please select a project.");
                        } else {
                            window.location.href = "../projects/editProject.php?projectID=" + $projectID;
                        }
                    }
             },
             {
                    text: 'Add',
                    action: function () {
                        window.location.href = "../projects/addProject.php";
                    }
             },
             {
                    text: 'Delete',
                    action: function () {
                        $projectID = $(projects.row('.selected').node()).data('id');
                        if ($projectID === undefined)
                        {
                            alert("Please select a project.");
                        } else {
                            $.post("../projects/deleteProject.php",
                            {
                                projectID: $projectID,
                                function() {
                                    window.location.reload(true);
                                }
                            }
                            );
                        }
                    }
             }
        ] }); } ); </script>


deleteProject.php:

<?php
require("../database/dbService.php");
require("../projects/deleteProjectService.php");

session_start();
$connection = connectToDB();

// check if input data is set
if (!isset($_POST['projectID'])){
    header("Location: ../projects/projects.php");
    exit;
}

// input data
$projectID = $_POST['projectID'];

deleteProject($connection, $projectID);
$_SESSION['message'] = "The project has been deleted!";


?>

最佳答案

您将回调函数放置在错误的位置,应该是:

$.post(
   "../projects/deleteProject.php",
   { projectID: $projectID },
   function(){ window.location.reload(true); }
);

关于javascript - 发布回调函数同步,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39896608/

10-11 12:23