Announcement

Collapse
No announcement yet.

AJAX: Variable von Page1 zu Page2 senden

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • AJAX: Variable von Page1 zu Page2 senden

    Moin moin,

    ich bin mal wieder mit AJAX beschäftigt und wieder stark am verzweifeln......

    Ich möchte gerne eine Test-Variable mittels AJAX an ein .PHP-Script senden. Diese Variable soll denn letztendlich im HTML-Bereich ausgegeben werden.

    Hier ist meine test.php - diese soll die Variable weiter leiten
    Code:
    <html>
      <head>
      <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
      
      <script>
      $(document).ready(function() {
      $('#myform').on('submit', function(e) {
      e.preventDefault();
      var test = "Hallo Welt!";
      
      $.ajax({
      url: "getData.php",
      type: "POST",
      data: { test : test },
      success: function (response) {
      console.log("data transmitted: " + response);
      window.location = 'hostSettings.php';
      },
      error: function(jqXHR, textStatus, errorThrown) {
      alert("Es ist ein Fehler aufgetreten!\n" + textStatus + "\n" + errorThrown);
      console.log(textStatus, errorThrown);
      }
      });
      });
      });
      </script>
      </head>
    
      <body>
      <form name="myform" id="myform">
      <input type="submit" value="Check1">
      </form>
    
      </body>
    </html>
    Hier ist meine "getData.php". Sie soll die Daten einfach nur empfangen und wieder ausgeben:
    PHP Code:
    <?php
      
    if(isset($_POST["test"])){
      echo 
    $_POST["test"];
      }
    ?>
    "hostSettings.php" soll die mittels AJAX weitergeleiteten Daten ausgeben:
    PHP Code:
    <html>
      <head>
      <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
      </head>

      <body>

      <?php include("getData.php");?>

      </body>
    </html>
    Im Konsolen-Log wird mir die richtige Antwort ausgegeben: "Hallo Welt". Auf der Seite "hostSettings.php" wird sie allerdings nicht ausgegeben. Der Grund, warum ich das Zwischenscript "getData.php" geschaltet habe, ist, weil mir sonst der ganze HTML-Code von "hostSettings.php" als KonsolenLog geantwortet wird und die Ausgabe dort trotzdem nicht erscheint.

    Das hier ist nur ein Test-Script. Später möchte ich nicht nur die Variable mit Inhalt "Hallo Welt" übermitteln, sondern ein JSON-Format. Das möchte ich gerne mit AJAX übermitteln, da die JSON ebenfalls mittels JavaScript erstellt wird.

    Ich hoffe ihr könnt mir helfen, ich hänge schon seit einer Ewigkeit an der gleichen Stelle...

  • #2
    Wozu in diesem Fall ein Ajax-Request?
    Wenn du Daten an den Server senden willst und dann eine neue Seite anzeigen willst, kannst du doch die normale synchrone Verarbeitung nutzen

    Das möchte ich gerne mit AJAX übermitteln, da die JSON ebenfalls mittels JavaScript erstellt wird.


    Das ist unverständlich.
    Man lässt schon aus Sicherheitsgründen keine Daten auf dem Client erstellen und schickt die dann zum Server. Jeder kann das Javascript einsehen und einen GET oder POST-Request dann mit manipulierten Daten senden.
    Warum erfolgt überhaupt ein senden zum Server. Die Daten werden auf dem Client erzeugt -> zum Server gesandt -> zurück gesandt -> angezeigt. Da läuft was schief.
    Warum muss AJAX benutzt werden, wenn die Daten per Javascript erzeugt werden?

    Ajax wird genutzt um asynchron Daten zu empfangen und dann ggf. Teile der aktuellen Seite auszutauschen.
    Wenn du dass dann schon unbedingt so machen willst, dann beachte, dass dein window.location = 'hostSettings.php'; dazu führt, dass eine neue Seite abgerufen wird (ein neuer Request). Deine hostSettings.php wird also vom Server geladen. Sie hat nichts von dem Ajax-Request "mitbekommen". Das getData.php in dieser Seite führt zum ERNEUTEN Aufruf des Scriptes. Da test nichts enthält bzw. nicht vorhanden ist, ist es leer. Sie kann eben nur "nichts" anzeigen. Wenn du getData.php um einen else-Zweig erweiterst und in diesem echo "ssssss"; ausgibst, so wird das wohl immer in deiner hostSettings.php angezeigt werden.
    Zuletzt editiert von Christian Marquardt; 27.10.2015, 14:53.
    Christian

    Comment

    Working...
    X