Franz A.: Inhalt von form(s) in einer Textdatei speichern (local)

Ich habe Seiten gemacht, in denen der User in Formularen Eingaben machen kann.
Diese Eingaben werden nach Druck eines Buttons mittels Javascript im HTML oberhalb anstatt des ursprünglichen Textes angezeigt.

Jetzt ist aber die Notwendigkeit entstanden, das auch abspeichern zu können.

Kann die die Eingaben, die der user in den forms gemacht hat irgendwie in eine Textdatei speichern?

Am besten waere es, wenn der user einen "Save"-Button klicken könnte und darauf hin kann er filename und folder auswählen und der Inhalt der ganzen forms wird dann in einer Textdatei gespeichert. Optimal waere es, wenn ich zwischen den Inhalten der Forms noch fixen Text (Überschriften halt) einfügen könnte und ein Name für die Textdatei vorgeschlagen würde.

Wie kriege ich das gebacken?

Ich habe schon was gefunden, wie ich den Text in Cookies speichern kann, da ist aber dann bald Ende (max 20 cookies, habe ich gelesen).
Als txt-Datei waere das natürlich auch viel geschickter zu übermitteln.

  1. Mahlzeit Franz A.,

    Kann die die Eingaben, die der user in den forms gemacht hat irgendwie in eine Textdatei speichern?

    Auf dem Rechner des Benutzers? Nur wenn dieser ein veraltetes Betrübssystem sowie einen uraltes Browserimitat verwendet - will sagen: mit vernünftigen, modernen Browsern ist das nicht möglich, da Javascript keinen Zugriff auf das lokale Dateisystem hat.

    Auf dem Webserver? Dann wirst Du nicht um eine serverseitige Skriptsprache (wie PHP, Perl, ASP, Python ...) herumkommen.

    MfG,
    EKKi

    --
    sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
    1. Mahlzeit Franz A.,

      Auch Mahlzeit - und danke für die rasche Antwort!

      Kann die die Eingaben, die der user in den forms gemacht hat irgendwie in eine Textdatei speichern?

      Auf dem Rechner des Benutzers? Nur wenn dieser ein veraltetes Betrübssystem sowie einen uraltes Browserimitat verwendet - will sagen: mit vernünftigen, modernen Browsern ist das nicht möglich, da Javascript keinen Zugriff auf das lokale Dateisystem hat.

      Von einem veralteten System kann ich leider nicht ausgehen.

      Auf dem Webserver? Dann wirst Du nicht um eine serverseitige Skriptsprache (wie PHP, Perl, ASP, Python ...) herumkommen.

      Andere Idee, wenn das so wie ich es ursprünglich gedacht habe nicht geht:

      Kann ich die Inhalte von allen forms auf der site per Buttondruck in *einem* textfeld (textarea) gesammelt anzeigen lassen, damit der user das mit *einem* copy-paste-Vorgang in einen Texteditor bringt und dort dann bequem abspeichern kann (mit fixem Text dazwischen, wenn möglich)?

      Auch das habe ich versucht, es ist mir aber nicht gelungen.
      (In den forms auch HTML-code eingegeben, der sollte dann auch als code in das Textfeld eingefügt werden, damit er mitkopiert werden kann.)

      1. Andere Idee, wenn das so wie ich es ursprünglich gedacht habe nicht geht:

        Kann ich die Inhalte von allen forms auf der site per Buttondruck in *einem* textfeld (textarea) gesammelt anzeigen lassen, damit der user das mit *einem* copy-paste-Vorgang in einen Texteditor bringt und dort dann bequem abspeichern kann (mit fixem Text dazwischen, wenn möglich)?

        Klar geht das.

        Struppi.

        1. Kann ich die Inhalte von allen forms auf der site per Buttondruck in *einem* textfeld (textarea) gesammelt anzeigen lassen, damit der user das mit *einem* copy-paste-Vorgang in einen Texteditor bringt und dort dann bequem abspeichern kann (mit fixem Text dazwischen, wenn möglich)?

          Klar geht das.

          Ah ja. Das hatte ich gehofft - hast Du auch einen Anhaltspunkt, *wie* das geht?

      2. Mahlzeit Franz A.,

        Kann ich die Inhalte von allen forms auf der site per Buttondruck in *einem* textfeld (textarea) gesammelt anzeigen lassen, damit der user das mit *einem* copy-paste-Vorgang in einen Texteditor bringt und dort dann bequem abspeichern kann (mit fixem Text dazwischen, wenn möglich)?

        Von allen Formularen? Oder doch lieber von allen Formularelementen? Auf jeden Fall geht das.

        Auch das habe ich versucht, es ist mir aber nicht gelungen.

        Was genau hast Du versucht? Welche Fehler sind dabei aufgetreten?

        MfG,
        EKKi

        --
        sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
        1. Mahlzeit Franz A.,

          Kann ich die Inhalte von allen forms auf der site per Buttondruck in *einem* textfeld (textarea) gesammelt anzeigen lassen, damit der user das mit *einem* copy-paste-Vorgang in einen Texteditor bringt und dort dann bequem abspeichern kann (mit fixem Text dazwischen, wenn möglich)?

          Von allen Formularen? Oder doch lieber von allen Formularelementen? Auf jeden Fall geht das.

          Von allen Formularen, ich habe da mehrere.

          Auch das habe ich versucht, es ist mir aber nicht gelungen.

          Was genau hast Du versucht? Welche Fehler sind dabei aufgetreten?

          <textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Punktestand u. Ums&auml;tze</span></textarea>

          Wenig überraschend wird dann "<span id="pt">Punktestand u. Ums&auml;tze</span>" angezeigt. Ich hätte aber gern den Inhalt von "pt" angezeigt oder halt den inhalt eines Formulars - wie geht das?

          Ah ja - Danke schonmal für die nette Hilfe!

          1. Mahlzeit Franz A,

            Von allen Formularen? Oder doch lieber von allen Formularelementen? Auf jeden Fall geht das.

            Von allen Formularen, ich habe da mehrere.

            Ich frage gerne nochmal: von allen Formularen oder von allen Formularelementen?

            <textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Punktestand u. Ums&auml;tze</span></textarea>

            Wenig überraschend wird dann "<span id="pt">Punktestand u. Ums&auml;tze</span>" angezeigt.

            Natürlich.

            Ich hätte aber gern den Inhalt von "pt" angezeigt oder halt den inhalt eines Formulars - wie geht das?

            Den Inhalt eines Formulars kannst Du nicht innerhalb eines Textfelds anzeigen - die Inhalte/Werte der einzelnen Formularelemente hingegen schon ... deswegen fragte ich danach. Du postest im Bereich "Javascript" - ich sehe allerdings in Deinem Lösungsversuch kein bisschen Javascript-Code ... Dir ist schon bewusst, dass die von Dir gewünschte Funktionalität nicht mit normalem HTML umsetzbar ist? Du benötigst eine Javascript-Funktion, die <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick@title=beim Klicken> auf einen Button <http://de.selfhtml.org/javascript/objekte/elements.htm#value@title=die Werte> <http://de.selfhtml.org/javascript/objekte/elements.htm@title=aller Elemente> <http://de.selfhtml.org/javascript/objekte/forms.htm@title=aller Formulare> ausliest und in das von Dir gewünschte Textfeld schreibt.

            MfG,
            EKKi

            --
            sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
            1. Ich frage gerne nochmal: von allen Formularen oder von allen Formularelementen?

              Gut, ich habe mehrere Formulare, die jeweils nur ein einziges Formularelement beinhalten.

              <textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Punktestand u. Ums&auml;tze</span></textarea>

              Wenig überraschend wird dann "<span id="pt">Punktestand u. Ums&auml;tze</span>" angezeigt.

              Natürlich.

              Hat mich auch nicht überrascht, da es ja auch sonst auch ganz gut klappt, beliebigen code in den Textfeldern angezeigt zu bekommen. ;-/

              Ich hätte aber gern den Inhalt von "pt" angezeigt oder halt den inhalt eines Formulars - wie geht das?

              Den Inhalt eines Formulars kannst Du nicht innerhalb eines Textfelds anzeigen - die Inhalte/Werte der einzelnen Formularelemente hingegen schon ... deswegen fragte ich danach.

              Wie gesagt, es sind definitiv mehrere Formulare, die jeweils aber nur ein Formularelement haben.

              Du postest im Bereich "Javascript" - ich sehe allerdings in Deinem Lösungsversuch kein bisschen Javascript-Code ... Dir ist schon bewusst, dass die von Dir gewünschte Funktionalität nicht mit normalem HTML umsetzbar ist?

              Das denke ich auch. Deshalb poste ich auch hier ;-)
              Die site an sich enthält schon JavaScript der schon vorhandene tut aber hier - denke ich wenigstens - nichts zur Sache, er dient nur dazu, die Inhalte der Formulare im oberen Teil des Dokuments als Ersatz für den dort vorhandenen Text im HTML einzusetzen.

              Du benötigst eine Javascript-Funktion, die <http://de.selfhtml.org/javascript/sprache/eventhandler.htm#onclick@title=beim Klicken> auf einen Button <http://de.selfhtml.org/javascript/objekte/elements.htm#value@title=die Werte> <http://de.selfhtml.org/javascript/objekte/elements.htm@title=aller Elemente> <http://de.selfhtml.org/javascript/objekte/forms.htm@title=aller Formulare> ausliest und in das von Dir gewünschte Textfeld schreibt.

              Jetzt hätte ich fast die schönen links nicht gesehen ;-)

              Danke dafür!

              Jetzt habe ich was zusammengebastelt, das mir wenigstens den Inhalt *eines* Formulars - Form1 - (dessen einzigen Feldes) anzeigt:

              <form name="Form6" action=""><textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Ums&auml;tze</span></textarea>
                       <input type="button" value="&Auml;nderungen anzeigen"
                        onclick="this.form.tx.value = document.Form1.elements[0].value;"></input></form>

              Ich habe aber nirgends was gefunden, wie ich das erweitere, dass mir der Inhalt mehrerer Formulare (mit jeweils einem Formularfeld) angezeigt wird.
              Wahrscheinlich ist das so einfach, dass das niemand extra erwähnt, aber ich check es einfach nicht. Am besten wäre es, wenn ich da auch noch Text (Leerzeilen, Überschriften) dazwischen einfügen könnte!

              1. Hallo

                Gut, ich habe mehrere Formulare, die jeweils nur ein einziges Formularelement beinhalten.

                Und das ist eine sinnvolle Konstruktion?

                ... <http://de.selfhtml.org/javascript/objekte/forms.htm@title=aller Formulare> ausliest und in das von Dir gewünschte Textfeld schreibt.

                Jetzt habe ich was zusammengebastelt, das mir wenigstens den Inhalt *eines* Formulars - Form1 - (dessen einzigen Feldes) anzeigt:

                <form name="Form6" action=""><textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Ums&auml;tze</span></textarea>
                         <input type="button" value="&Auml;nderungen anzeigen"
                          onclick="this.form.tx.value = document.Form1.elements[0].value;"></input></form>

                Ich habe aber nirgends was gefunden, wie ich das erweitere, dass mir der Inhalt mehrerer Formulare (mit jeweils einem Formularfeld) angezeigt wird.

                Du musst dir schon alle im Dokument enthaltenen Formulare zusammensuchen (oder du kennst sie, bzw. ihre Position im Dokument oder ihre Namen). Wie das geht, beschreibt <http://de.selfhtml.org/javascript/objekte/forms.htm#allgemeines@title=der erste Block auf der bereits von EKKi verlinkten Seite>.

                Tschö, Auge

                --
                Die deutschen Interessen werden am Liechtenstein verteidigt.
                Veranstaltungsdatenbank Vdb 0.2
                1. Jetzt habe ich was zusammengebastelt, das mir wenigstens den Inhalt *eines* Formulars - Form1 - (dessen einzigen Feldes) anzeigt:

                  <form name="Form6" action=""><textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Ums&auml;tze</span></textarea>
                           <input type="button" value="&Auml;nderungen anzeigen"
                            onclick="this.form.tx.value = document.Form1.elements[0].value;"></input></form>

                  Ich habe aber nirgends was gefunden, wie ich das erweitere, dass mir der Inhalt mehrerer Formulare (mit jeweils einem Formularfeld) angezeigt wird.

                  Du musst dir schon alle im Dokument enthaltenen Formulare zusammensuchen (oder du kennst sie, bzw. ihre Position im Dokument oder ihre Namen). Wie das geht, beschreibt <http://de.selfhtml.org/javascript/objekte/forms.htm#allgemeines@title=der erste Block auf der bereits von EKKi verlinkten Seite>.

                  Entweder ich bin blind oder blöd, aber ich finde da nix, wie ich meinen code dahingehend erweitern kann, dass mehrere Formulare ausgelesen und angezeigt werden.

                  Das Zusammensuchen wäre kein Problem, ich weiss ja wie meine forms heissen.

                  Ich habe es jetzt mit
                  <input type="button" value="&Auml;nderungen anzeigen" onclick="this.form.tx.value = document.Form1.elements[0].value;document.Form2.elements[0].value"></input></form>

                  probiert - kein Erfolg.

                  Ich weiss einfach nicht, wie ich das verknüpfe um mehrere Formularinhalte angezeigt zu bekommen - und ich optimalerweise dann auch noch fixen Text dazwischen bekomme.

                  1. Entweder ich bin blind oder blöd, aber ich finde da nix, wie ich meinen code dahingehend erweitern kann, dass mehrere Formulare ausgelesen und angezeigt werden.

                    Den Teil habe ich nun gelöst, siehe meine Antwort an EKKi.

                    Danke auch Dir für Deine Hilfe!

              2. Mahlzeit Franz A,

                Ich frage gerne nochmal: von allen Formularen oder von allen Formularelementen?

                Gut, ich habe mehrere Formulare, die jeweils nur ein einziges Formularelement beinhalten.

                Ich behaupte, dass das keine sinnvolle Konstruktion ist. Warum ist das so?

                <form name="Form6" action=""><textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Ums&auml;tze</span></textarea>

                Was soll der <span>-Bereich im Textfeld?

                <input type="button" value="&Auml;nderungen anzeigen"
                          onclick="this.form.tx.value = document.Form1.elements[0].value;"></input></form>

                Wenn Du die Funktionalität in eine http://de.selfhtml.org/javascript/sprache/funktionen.htm@title=Funktion auslagerst, kannst Du dort z.B. mittels zweier ineinander verschachtelter http://de.selfhtml.org/javascript/sprache/schleifen.htm@title=Schleifen alle Formularelemente aller Formulare auslesen - und dann mit ihren Werten machen, was Du willst ...

                Wahrscheinlich ist das so einfach, dass das niemand extra erwähnt, aber ich check es einfach nicht. Am besten wäre es, wenn ich da auch noch Text (Leerzeilen, Überschriften) dazwischen einfügen könnte!

                ... z.B. durch Leerzeilen usw. getrennt an den Inhalt Deines Textfeldes anfügen.

                MfG,
                EKKi

                --
                sh:( fo:| ch:? rl:( br:> n4:~ ie:% mo:} va:) de:] zu:) fl:{ ss:) ls:& js:|
                1. Ich frage gerne nochmal: von allen Formularen oder von allen Formularelementen?
                  Gut, ich habe mehrere Formulare, die jeweils nur ein einziges Formularelement beinhalten.
                  Ich behaupte, dass das keine sinnvolle Konstruktion ist. Warum ist das so?

                  Da muss ich Dir recht geben. Ist sicher nicht sinnvoll und ich würde es das nächste mal sicher anders machen. Nun sind aber die sites schon so wie sie sind praktisch fertig und ich soll halt noch eine Funktionalität hinzufügen - da möchte ich nicht alles umdrehen.

                  <form name="Form6" action=""><textarea name="tx" cols="80" rows="12" wrap="virtual"><span id="pt">Ums&auml;tze</span></textarea>
                  Was soll der <span>-Bereich im Textfeld?

                  Du fragtest, was ich probiert habe - ich habe es gepostet. Wunderte mich nicht, dass es nicht funktioniert, ich hatte aber auch keinen Plan, wie es funktionieren könnte.

                  Aber jetzt bin ich, dank Deiner Hilfe ja schon um einiges weiter.

                  <input type="button" value="&Auml;nderungen anzeigen"
                            onclick="this.form.tx.value = document.Form1.elements[0].value;"></input></form>

                  Wenn Du die Funktionalität in eine http://de.selfhtml.org/javascript/sprache/funktionen.htm@title=Funktion auslagerst, kannst Du dort z.B. mittels zweier ineinander verschachtelter http://de.selfhtml.org/javascript/sprache/schleifen.htm@title=Schleifen alle Formularelemente aller Formulare auslesen - und dann mit ihren Werten machen, was Du willst ...

                  Hmm. Muss ich mir noch ansehen.

                  Wahrscheinlich ist das so einfach, dass das niemand extra erwähnt, aber ich check es einfach nicht. Am besten wäre es, wenn ich da auch noch Text (Leerzeilen, Überschriften) dazwischen einfügen könnte!

                  ... z.B. durch Leerzeilen usw. getrennt an den Inhalt Deines Textfeldes anfügen.

                  Derzeit habe ich es so gelöst:

                  <input type="button" value="&Auml;nderungen anzeigen"
                            onclick="this.form.tx.value = 'Erster Text = '
                             + document.Form1.elements[0].value + 'zweiter Text = ' + document.Form2.elements[0].value + 'dritter Text = ' + document.einl.elements[0].value;"></input></form>

                  Das funktioniert erst mal, ich muss nur noch drauf kommen, wie ich da ein paar Zeilenumbrüche reinbekomme, damit das ein wenig netter aussieht.

                  Danke erstmal für Deine rasche und kompetente Hilfe!

                  1. Das funktioniert erst mal, ich muss nur noch drauf kommen, wie ich da ein paar Zeilenumbrüche reinbekomme, damit das ein wenig netter aussieht.

                    http://de.selfhtml.org/javascript/sprache/notationen.htm#zeichenketten

                    Mathias

                    1. http://de.selfhtml.org/javascript/sprache/notationen.htm#zeichenketten

                      Danke für die Hilfe - hat mir einiges an Sucherei und damit Zeit erspart!