Ajax -> php

chpo7234

New member
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...
 
Zuletzt bearbeitet:
mit window.location = 'hostSettings.php'; verlässt du den kontext. das muss weg. was die hostsettings macht muss rüber in die getdata. und dein problem mit dem inhalt ist keines, du musst nur sauber server und client trennen. das ist der mist an php, das ist nicht selbsterklärend.
 
Moin,

den Lösungsvorschlag hatte ich glaube ich schon mal ausprobiert. Wenn ich window.location weg lasse, denn wird der Benutzer ja nicht auf Seite2 weiter geleitet....

Wenn ich dann die Hostsettings.php in die getdata.php rein schiebe, denn kriege ich als Antwort im Konsolen-Log den gesamten Quelltext von getdata angezeigt. Nützt mir aber nichts, wenn mir die Seite nicht eingeblendet wird. Ich glaube, ich bin einfach zu blöd für AJAX bzw. dem Client-Server-Prinzip. Ich versuche es mittlerweile mit PHP $_SESSION. Damit klappt das im Moment irgendwie besser und die Daten werden nicht erst vom Server zum Benutzer und dann wieder zum Server geschickt, sondern bleiben direkt beim Server.
 
denn wird der Benutzer ja nicht auf Seite2 weiter geleitet....
Wenn du das willst, darfst du nicht mit AJAX arbeiten, sondern musst mir ganz normalen Links oder <form>s arbeiten.

Nützt mir aber nichts, wenn mir die Seite nicht eingeblendet wird.
Du musst im JS schon irgendwo spezifizieren, wenn irgendwas im DOM passieren soll. Also z.B. ein
Code:
$("#irgendeineIDImDoukument").text(response);
im success.
 
Zurück
Oben