在ajax请求和PHP函数之后刷新页面

时间:2017-06-20 10:06:39

标签: javascript php jquery ajax

美好的一天!

尝试使用ajax和php函数(到db)提交值后刷新页面。尝试通过ajax请求成功方法来做,但它似乎没有用。

的javascript

function saveQuestionnaire() {
    /* some code */

    $.ajax({
        type: "POST",
        url: "createquestionnaire.php",
        data: {toDbQuestionnaire: toDbJson},
        success: function(data){
            window.location.reload();
        }
    });
}

createquestionnaire.php

require("functions.php");

$obj = $_POST['toDbQuestionnaire'];
$obj = json_decode($obj);

if (isset($obj) && isset($obj->name) && $_SESSION['email']) {
    $Question->createQuestionnaireWithNameAndEmail($obj->name, $_SESSION['email'], $obj->quiz);
    header('Content-Type: application/json');
    echo json_encode("{result: true}");
}

之后的以下函数正确执行并将值推送到DB。虽然,要查看页面上的更改,我需要刷新页面。我如何实现这一目标?正如您所看到的,window.location.reload()并不常用。

----编辑----

显然,这就像一个魅力。为什么我会收到错误?

error: function(data){
                window.location.reload();
            }

4 个答案:

答案 0 :(得分:1)

success: function(data){
   if(data.success == true){ // if true (1)
      setTimeout(function(){// wait for 5 secs(2)
           location.reload(); // then reload the page.(3)
      }, 1000); 
   }
}

在成功部分

中使用它

答案 1 :(得分:1)

你可以像这样更改你的createquestionnaire.php文件吗,

    require("functions.php");

    $obj = $_POST['toDbQuestionnaire'];
    $obj = json_decode($obj);

    if (isset($obj) && isset($obj->name) && $_SESSION['email']) {
        $Question->createQuestionnaireWithNameAndEmail($obj->name, $_SESSION['email'], $obj->quiz);
        header('Content-Type: application/json');
        $result = array('result'=>true);
        echo json_encode($result );
    }else{
        $result = array('result'=>false);
        echo json_encode($result );
}

答案 2 :(得分:0)

真的很抱歉大家。错误的原因是createquestionnaire.php中的这部分:

ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

答案 3 :(得分:0)

成功使用location.reload而不是window.location.reload