jquery - Formularinhalte in Datenbank speichern.

DerMarco

Grünschnabel
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:
<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
Das, was das Skript an den Browser ausgibt, fügt jQuery dann im Zielcontainer ein.

Noch ein kleiner Auszug aus der Jquery.load beschreibung :
Description: Load data from the server and place the returned HTML into the matched element.

Bedeutet also:
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.
 
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?
 
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 per
Code:
tinyMCE.activeEditor.contentDocument.body.innerHTML
 

Neue Beiträge

Zurück