2017-06-20 78 views
0

美好的一天!ajax請求和PHP函數後刷新頁面

嘗試在使用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(); 
      } 
+5

你爲什麼使用AJAX,當你需要刷新頁面。 – Webinion

+1

您是否嘗試在重定向之前添加'console.log('pass')'?查看您的成功功能是否觸發。 – Zenoo

+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

你可以改變你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); 
} 
0

真的對不起大家。錯誤的原因是這部分中createquestionnaire.php:

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

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