发布回调函数同步

时间:2016-10-06 12:55:33

标签: javascript php jquery datatables

我正在使用数据表,在发布后我想在数据库中的更改完成后刷新页面。但是现在,如果页面在数据库更新之前或之后刷新,那么它几乎是随机的。我还尝试将'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!";


?>

1 个答案:

答案 0 :(得分:1)

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

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