• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

AJAX liefer HTML-Code als Response

chpo7234

New member
Hallo Leute,

ich versuche testweise erst mal nur einen String "Hallo Welt" mittels Ajax-Post an PHP zu senden. Als response wird mir allerdings nicht der String ausgegeben, sondern der komplette HTML/JS-Code der Seite.

header
Code:
<html>
  <head>

    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
    <script>

      $(document).ready(function() {
        $("#button").click(function() {

          var test = "Hallo Welt";

          $.ajax({
            url: "ajax.php",
            type: "post",
            data: {
              test: test
            },
            success: function (response) {
              alert(response);
            },
            error: function(jqXHR, textStatus, errorThrown) {
              alert(textStatus, errorThrown);
            }
          });

        });
      });
    </script>

  </head>

body
PHP:
  <body>
    <form>
      <input type="button" id="button" value="Test" style="width:200x">
    </form>

    <?php
      if(isset($_POST["test"])) {
        echo $_POST["test"];
      }
    ?>
  </body>
</html>


In dem Code des Response wird mir der String allerdings wieder gegeben. Snippet der Response:
Code:
  <body>
    <form>
      <input type="button" id="button" value="Test" style="width:200x">
    </form>

    Hallo Welt
  </body>
Erkennt jemand den Fehler und kann mir einen Hinweis/Tipp geben?

Lieben Gruß

EDIT

Mittlerweile habe ich einen Lösungsweg gefunden:

PHP:
<html>
  <head>
    <script src="http://code.jquery.com/jquery-latest.js" type="text/javascript"></script>
    <script>

          $(document).ready(function() {
            $("form").on('submit',function(e) {
              e.preventDefault();
              var test = "Hallo Welt";
              $.ajax({
                url: "ajax.php",
                type: "post",
                data: {
                  test: test
                },
                success: function (response) {
                  alert(response);
                  document.getElementById('out').innerHTML=response;
                },
                error: function(jqXHR, textStatus, errorThrown) {
                  alert(textStatus, errorThrown);
                }
              });
            });
          });

    </script>
  </head>

  <body>
    <?php
      if( $_SERVER['REQUEST_METHOD']=='POST' ){
        ob_clean();

        if(isset($_POST["test"])) {
          echo $_POST["test"];
        }
        exit();
      }
    ?>

    <form>
      <input type="button" id"button2" value="Nichts">
      <input type="submit" id="button" value="Test" style="width:200x">
      <output id='out'></output>
    </form>
  </body>
</html>

Lieben Gruß
 
Zuletzt bearbeitet:
was hat denn die ganze HTML Klatte in deiner ajax.php zu suchen?
deine ajax beinhaltet lediglich die funktionen um etwas zu bearbeiten und ein ergebnis auszuwerfen, sonst nichts.
damit du mehrere aufgaben in deiner ajax.php unterbringen kannst wäre eine lösung einen weiteren parameter mitzugeben, der die funktionen unterteilt
 
Zurück
Oben