Variable mittels AJAX von Page1 zu Page2 senden

chpo7234

Grünschnabel
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:
<?php
  if(isset($_POST["test"])){
  echo $_POST["test"];
  }
?>

"hostSettings.php" soll die mittels AJAX weitergeleiteten Daten ausgeben:
PHP:
<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...
 
Das kann so auch nicht funktionieren.
Nach deinen Ajax-Request lädst du die Seite hostSettings.php durch die manipulation der window location.

Für diesen Aufruf ist $_POST["test"] nicht gesetzt, deshalb siehst du nichts.
Du musst das, was der Ajax-Request zurück gibt nutzen und in dein Dokument schreiben.
so z.B.
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);
            $('newContent').html(response);
        },
        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>
     <div id='newContent'></div>
  </body>
</html>

Warum wolltest du sowieso die window location manipulieren?
Dadurch wird die Seite doch vom Server geladen und der Ajax Request unnötig.
 
Hallo,

ich häng mich mal mit dran,
gibt es eine Möglichkeit mehrere 'Antworten' vom php-script zu verarbeiten?

z.B.:

response.x
response.y
response.z

oder geht nur mehrere Anfragen eine Antwort?

Danke.
 

Neue Beiträge

Zurück