In diesem Beitrag zeige ich euch, wie einfach es ist mit AJAX ein Formular abzusenden ohne die Seite neu laden zu müssen
HTML Part
<form name="ajaxFormular" id="ajaxFormular" method="POST"> <textarea name="diskNotes" id="nachricht"></textarea> <input type="submit" value="send"> </form>
AJAX Part
// Wenn das Formular mit der ID ajaxFormular abgesendet wird $('#ajaxFormular').submit(function(){ // Gib im Content Container eine Lademeldung aus, falls der Vorgang länger dauert $('#content').html("Loading Results"); $.ajax({ type: 'POST', url: 'eintragen.php', data: $(this).serialize() }) // Wenn Vorgang erfolgreich ... .done(function(data){ // ... lade Daten in den Content Container $('#content').html(data); // ... leere das Formularfeld mit der ID Nachricht (um z.B. bei einem Messenger den nächsten Beitrag schreiben zu können) $('#nachricht').val(''); }) // Wenn Vorgang nicht erfolgreich .fail(function() { // ... logge das Ganze in der Konsole oder führe eine andere Aktion aus console.log( "Posting failed." ); }); // verhindert, dass die Seite durch das Formular neu geladen wird (Standardaktion) return false; });
PHP / MySQL Part
if(isset($_POST['nachricht']) && strlen($_POST['nachricht']) > 5) { try { $conn = new PDO("mysql:host=".$dvCfg['dbhost'].";dbname=".$dvCfg['dbname']."", $dvCfg['dbuser'], $dvCfg['dbpass']); $sql = "INSERT INTO messages (nachricht) VALUES (?)"; $statement = $conn->prepare($sql); $statement->execute(array($_POST[nachricht]); } catch(PDOException $e) { echo $e->getMessage(); } $conn = null; $note = new Disk(); echo $note->getDiskNotes($model,$serial); } else { echo "Seite wurde aufgerufen ohne dass eine Nachricht übergeben wurde"; }
Schreibe einen Kommentar