tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
JA
ANTWORTEN
16
ZUGRIFFE
3804
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    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" .
     

  2. #2
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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.
    DerMarco bedankt sich. 

  3. #3
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    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?
     

  4. #4
    Avatar von rd4eva
    rd4eva rd4eva ist offline Mitglied Brillant
    Registriert seit
    Feb 2003
    Beiträge
    756
    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.
    Sven Mintel bedankt sich. 
    In order to understand recursion, one must first understand recursion.

  5. #5
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    Ah jetzt verstehe ich es! Vielen Dank, werde es direkt mal ausprobieren.
     

  6. #6
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    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?
     

  7. #7
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    Hast du dem Formular auch das method-Attribut "post" gegeben?
     

  8. #8
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    vor lauter bäumen den wald nicht gesehen, das wars, sorry und danke
     

  9. #9
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    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.
     

  10. #10
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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 :
    1
    
    tinyMCE.activeEditor.contentDocument.body.innerHTML
     

  11. #11
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    danke für die rasche antwort. wie genau kriege ich den inhalt denn dann ins array?
     

  12. #12
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    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 du
    Code :
    1
    
    tinyMCE.activeEditor.contentDocument.body.innerHTML
    der value-Eigenschaft des Textareas zuweist.
     

  13. #13
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    HTML-Code:
    <textarea name="content" style="width:700px; height: 400px;"></textarea>
    So sieht mein Textarea aus, wie genau mache ich es denn, weil eigentlich gibt es doch kein value beim textarea?
     

  14. #14
    Avatar von Sven Mintel
    Sven Mintel Sven Mintel ist offline Mitglied
    Registriert seit
    Aug 2003
    Beiträge
    18.238
    Blog-Einträge
    6
    weil eigentlich gibt es doch kein value beim textarea?
    Doch, von Javascript-Seite aus betrachtet besizt jedes Formularelement ein value-Attribut welches man lesen und schreiben kann.
     

  15. #15
    DerMarco DerMarco ist offline Mitglied
    Registriert seit
    Jan 2006
    Beiträge
    11
    und wie weise ich
    Code :
    1
    
    tinyMCE.activeEditor.contentDocument.body.innerHTML
    dann der value-Eigenschaft des textareas zu? sorry, bin nicht so fit in javascript.
     

Ähnliche Themen

  1. jQuery - Daten in Objekt zwischen speichern?
    Von unrealzero_php im Forum Javascript & Ajax
    Antworten: 1
    Letzter Beitrag: 01.07.10, 10:55
  2. [jQuery] Cookie Speichern klappt nicht
    Von Splater im Forum Javascript & Ajax
    Antworten: 2
    Letzter Beitrag: 05.05.10, 18:43
  3. JQuery: Autovervollständigung in 2 input Felder speichern!
    Von Roumeo im Forum Javascript & Ajax
    Antworten: 9
    Letzter Beitrag: 01.10.08, 13:41
  4. Dynamische Formularinhalte
    Von pria im Forum .NET Windows Forms
    Antworten: 2
    Letzter Beitrag: 17.08.07, 19:08
  5. Antworten: 20
    Letzter Beitrag: 19.07.05, 14:58

Stichworte