簡體   English   中英

Ajax請求和PHP函數后刷新頁面

[英]Refreshing page after ajax request and PHP function

美好的一天!

使用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();
            }
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); 
   }
}

在成功部分中使用它

您可以這樣更改您的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 );
}

真的很抱歉 錯誤的原因是createquestionnaire.php中的這一部分:

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM