-
Hallo Zusammen,
kann mir jemand ein einfaches Tutorial oder Codeschnipsel zukommen lassen indem erklärt wird, wie man auf einer Website Daten in ein Formular eingeben kann und dann mit klicken auf Absenden, diese Daten im Hintergrund dann in die Datenbank gespeichert werden? Wenn möglich sollte dann eine kurze Meldung auf der Seite noch erscheinen "Nachricht gespeichert" .
-
Moin,
in einer DB kann man mit jQuery nichts speichern, dazu brauchst du ein serverseitiges Skript.
Aber bis dahin geht es z.B.so:
Code :1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
<html> <head> <script type="text/javascript" src="http://code.jquery.com/jquery-latest.js"></script> <script type="text/javascript"> function fx(form,target) { var _target=target; var url=form.action; var data=$(form)[(form.method.match(/^post$/i))?'serializeArray':'serialize'](); $(_target).load(url,data,function(){setTimeout(function(){$(_target).empty();},2000);}); return false; } </script> </head> <body> <form action="ziel.php" onsubmit="return fx(this,'#zielcontainer')" > <input name="foo"><br> <input name="bar"><br> <input type="submit"><br> <div id="zielcontainer"></div> </form> </body> </html>
Übergeben bekommt die Funktion fx() immer this als Zeiger aufs Formular, und die ID des Zielcontainers(mit vorangestellter Raute).
jQuery sendet dann per AJAX die Daten an die im Formular als action definierte Adresse(z.B. PHP-Skript)
Dies Skript kann dann die gesendeten Daten aus dem POST-/GET-Array fischen und damit tun, was zu tun ist.
Das, was das Skript an den Browser ausgibt, fügt jQuery dann im Zielcontainer ein.
-
vielen Dank für die Antwort. In der ziel.php verarbeite ich dann die Inhalte ganz normal mit PHP, aber wie gebe ich denn Werte zurück, dass diese dann in dem zielcontainer erscheinen?
-
Wie Sven schon geschrieben hat
Noch ein kleiner Auszug aus der Jquery.load beschreibung :Das, was das Skript an den Browser ausgibt, fügt jQuery dann im Zielcontainer ein.
Bedeutet also:Description: Load data from the server and place the returned HTML into the matched element.
Nachdem die ziel.php die Daten verarbeitet hat, muss halt einfach noch irgendetwas ausgegeben werden (per echo, print etc...).
Das schnappt sich die .load function dann und schmeisst es in #zielcontainer.In order to understand recursion, one must first understand recursion.
-
Ah jetzt verstehe ich es! Vielen Dank, werde es direkt mal ausprobieren.
-
konnte es leider heute erst testen. normalen text bekomme ich ausgegeben aber ich würde gerne z.b. $_POST['foo'] ausgeben, das funktioniert leider nicht, das array ist leer. woran kann es liegen?
-
Hast du dem Formular auch das method-Attribut "post" gegeben?
-
vor lauter bäumen den wald nicht gesehen, das wars, sorry und danke
-
das funktioniert alles top, nur ich bekomme ein textarea nicht übergeben erst beim zweiten mal wenn ich auf submit klicke und dann habe ich auch noch einen zeilenumbruch mit drin. es handelt sich dabei allerdings um ein tinyMCE textarea. habt ihr eine idee woran es liegen kann? vorher hat es ohne jquery funktioniert.
-
TinyMCE füllt seinerseits das <textarea> erst mit den Daten aus dem Editor, wenn der Submit-Vorgang durchgeführt wird.
Beim 1. mal ist das <textarea> leer, weil das abgebrochen wurde, beim 2. mal sind die Daten von Hause aus im Textarea.
Du müsstest das Füllen des Textarea's vor dem Senden per AJAX vornehmen.
An die Daten aus dem Editor kommst du perCode :1
tinyMCE.activeEditor.contentDocument.body.innerHTML
-
danke für die rasche antwort. wie genau kriege ich den inhalt denn dann ins array?
-
Du musst ihn nicht ins Array bekommen, es reicht aus ihn ins textarea zu bekommen.
Den Rest macht dann schon jene Zeile:
Code :1
var data=$(form)[(form.method.match(/^post$/i))?'serializeArray':'serialize']();
In das Textarea bekommst du es, indem duder value-Eigenschaft des Textareas zuweist.Code :1
tinyMCE.activeEditor.contentDocument.body.innerHTML
-
So sieht mein Textarea aus, wie genau mache ich es denn, weil eigentlich gibt es doch kein value beim textarea?HTML-Code:
<textarea name="content" style="width:700px; height: 400px;"></textarea>
-
Doch, von Javascript-Seite aus betrachtet besizt jedes Formularelement ein value-Attribut welches man lesen und schreiben kann.weil eigentlich gibt es doch kein value beim textarea?
-
und wie weise ich
dann der value-Eigenschaft des textareas zu? sorry, bin nicht so fit in javascript.Code :1
tinyMCE.activeEditor.contentDocument.body.innerHTML
Ähnliche Themen
-
jQuery - Daten in Objekt zwischen speichern?
Von unrealzero_php im Forum Javascript & AjaxAntworten: 1Letzter Beitrag: 01.07.10, 10:55 -
[jQuery] Cookie Speichern klappt nicht
Von Splater im Forum Javascript & AjaxAntworten: 2Letzter Beitrag: 05.05.10, 18:43 -
JQuery: Autovervollständigung in 2 input Felder speichern!
Von Roumeo im Forum Javascript & AjaxAntworten: 9Letzter Beitrag: 01.10.08, 13:41 -
Dynamische Formularinhalte
Von pria im Forum .NET Windows FormsAntworten: 2Letzter Beitrag: 17.08.07, 19:08 -
Formularinhalte in eine MySQL Datenbank mit PHP einfügen
Von Shiro-san im Forum PHPAntworten: 20Letzter Beitrag: 19.07.05, 14:58



2Danke

Zitieren
Login





