2017-06-20 2 views
0

Guten Tag!Refreshing Seite nach Ajax Anfrage und PHP-Funktion

Der Versuch, die Seite nach dem Einreichen von Werten mit Ajax und PHP-Funktion (zu db) zu aktualisieren. Versucht, es über Ajax Anfrage Erfolgsmethode zu tun, aber es schien nicht zu funktionieren.

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}"); 
} 

Die folgende Funktion Danach durchläuft richtig und schiebt Werte DB. Um die Änderungen auf der Seite zu sehen, muss ich die Seite aktualisieren. Wie erreiche ich das? Wie Sie sehen können, hat window.location.reload() nicht ganz funktioniert.

---- ---- EDIT

Offensichtlich funktioniert dies wie ein Zauber. Warum bekomme ich einen Fehler?

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

warum Sie AJAX tun verwenden, wenn Sie die Seite aktualisieren müssen. – Webinion

+1

Haben Sie versucht, direkt vor der Weiterleitung ein 'console.log ('pass')' hinzuzufügen? Um zu sehen, ob Ihre Erfolgsfunktion ausgelöst wird. – Zenoo

+0

Drucken Sie Ihren Fehler in der Konsole –

Antwort

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); 
    } 
} 

Verwendung dieses in den Erfolg Teil

1

können Sie Ihre createquestionnaire.php Datei wie folgt ändern,

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

wirklich leid jeder. der Grund für Fehler war dieser Teil in createquestionnaire.php:

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

Verwenden location.reload statt window.location.reload in Erfolg