2016-06-29 6 views
0

Ich habe einen Test, der für eine bestimmte Anzahl von Versuchen ausgeführt wird, und sobald es fertig ist, stellt es die Daten in das PHP-Skript. Die Daten wurden erfolgreich zur Datenbank hinzugefügt, die Ergebnisse werden jedoch nicht wiedergegeben. Ich möchte, dass die Testergebnisse für den Benutzer angezeigt werden.Echo in PHP Post Block druckt keine Werte von JQuery

PHP

<?php 
    require_once 'php-includes/header.php'; 
    include ('php-includes/phpValidate.php'); 
    if ($_POST) { 
     include ('php-includes/antHelper.php'); 

     $testData = removeDelimiters($_POST['RT'], $_POST['condition'], $_POST['response'], $_POST['ansStr'], $_POST['congruency'], $_POST['cueStr']); 
     $testID = addTest($_POST['toa'], $_POST['nTrial']); 

     if (isset($testID)) { 
      for ($i = 0; $i < count($testData["RT"]); $i++) { 
       addResponse((int)$testData["RT"][$i], (int)$testData["condition"][$i], $testData["response"][$i], $testData["answer"][$i], $testData["cue"][$i], $testData["congruence"][$i], $testID); 
      } 
      $results = getCueScores($testID); 
      $results = getCongruencyScores($testID, $results); 
      $alerting = $results["noCue"] - $results["doubleCue"]; 
      $orienting = $results["centerCue"] - $results["spatialCue"]; 
      $executive = $results ["incongruent"] - $results["congruent"]; 
      echo 'Your alerting result is' . $alerting; 
      echo 'Your orienting result is' . $orienting; 
      echo 'Your executive result is' . $executive; 
      header('Location: index.php'); 
     } 
    } 
?> 

JS

 $(".btn[name=submitANT").click(function() { 
     $.post("antApp.php", 
      {response : $("input[name=rspStr]").val(), RT : $("input[name=RTStr]").val(), nTrial : $("input[name=nTrial]").val(), toa : $("input[name=toa]").val(), 
      condition : $("input[name=condition]").val(), ansStr : $("input[name=ansStr]").val(), cueStr : $("input[name=cueStr]").val(), 
      congruency : $("input[name=congruency]").val()}, 
      function(data) { 
       //$("#antDebrief").show(); 
       //$("#antDebrief").css("visibility", "visible"); 
      }); 
     }); 
+0

Was bedeutet 'addTest()' zurückkehren? Wenn es nicht widerhallt, geht es schlicht und einfach nicht. – zanderwar

+0

Es gibt die ID der vorherigen sql-Einfügung zurück, die ich wieder verwendet habe, um die berechneten Werte aus dem Test – TraderJosh

+0

zu erhalten Nach dem Öffnen: 'if (isset ($ testID)) {' add 'sterben (" Yup, ich habe es in diese gemacht if-Anweisung ");' Führen Sie das Skript dann erneut aus. – zanderwar

Antwort

1

Du PHP sendet header('Location: index.php'); direkt nach dem echo.

Dies ist wie ein window.location.href="XYZ";.
Es leitet die Seite um.
Also vielleicht ist nichts falsch, aber Sie haben einfach nicht die Zeit, die Echos zu sehen.

Versuchen kommentieren Sie diese Zeile:

header('Location: index.php'); 

EDIT basierend auf Kommentar

1- Ihr "Aufruf" Seite als die "Namen" Seite anders zu sein hat. Eine Seite, die sich selbst aufruft, ist nie eine gute Sache.

2- in Ihrer aufgerufenen Seite (antApp.php), ist der Header vorhanden: require_once 'php-includes/header.php'; und dies ist wahrscheinlich der Körper und Fußzeile: include ('php-includes/phpValidate.php');

+0

Auch wenn ich das selbe wegnehme, leider. – TraderJosh

+0

hinzufügen: $ ('# antDebrief'). Html (Daten) innerhalb der Funktion (Daten) löste das Echo-Problem, aber jetzt druckt dies die gleiche Seite zweimal auf dem Bildschirm. Dies bedeutet zwei Header, Fußzeilen und Hauptkörper. – TraderJosh

+0

** 1 - ** Ihre "Anruf" -Seite muss sich von der "Angerufenen" -Seite unterscheiden. Eine Seite, die sich selbst aufruft, ist nie eine gute Sache. ** 2 - ** in Ihrer aufgerufenen Seite (antApp.php), die Kopfzeile ist vorhanden: 'require_once 'php-includes/header.php';' und das ist wahrscheinlich der Text und die Fußzeile: 'include ('php-includes /phpValidate.php '); ' –