Okay, die Frage ist evtl ein bisschen kompliziert. Deshalb beschreibe ich das anhand eines Beispiels. Zuerst meine Dateien:
PHP (submit.php)
<?php
$mail = $_GET['mail']; if(filter_var($mail, FILTER_VALIDATE_EMAIL)) { echo "<div role=\"alert\">Ungültige E-Mail</div>"; } else { echo "<div role=\"alert\">Gültige E-Mail</div>"; }
?>
HTML (index.html)
<form id="myForm">
<input type="email" name="mail" id="mail" placeholder="E-Mail Adresse"/>
<input type="submit" name="check" id="check" value="Senden"/>
</form>
<script src="http://code.jquery.com/jquery-1.9.1.js"/> <script> $(function () { $('form').on('submit', function (e) { e.preventDefault(); $.ajax({ type: 'post', url: 'submit.php', data: $('form').serialize(), success: function() { //echo "Gültige E-Mail } error: function() { //echo "Ungültige E-Mail" } }); }); }); </script>
Beschreibung:
Sobald das Formular abgesendet wurde, wird die E-Mail an die submit.php gesendet. In dieser wird überprüft, ob die E-Mail gültig ist und gibt dann das Ergebnis in Form von HTML-Code zurück.
Die Lösung mit alert will ich nicht. Es soll unterhalb der Form das Ergebnis stehen.
Wenn ich mit PHP
echo "<div role=\"alert\">Gültige E-Mail</div>";
ausgebe, dann steht das auch direkt in HTML dort (also nicht als PlainText).
Wie ist es also möglich, das Ergebnis der submit.php zu bekommen und in der index.html auszugeben?
Vielen Dank im Voraus!