Thomas Michel: Formulare dynamisch erweitern

Hallo zusammen

Ich suche einen beispiel javascript der folgendes kann an einer stelle (mit einer id gekennzeichnet) beliebigen html code einfügen. Ich benötige das ganze für mein CMS system für die realisierung der 1:n beziehung.

mfG

Thomas

  1. Hallo,

    setz den einzufügenden HTML-Code in ein div mit der entsprechenden id und style="display:none".

    Um den Code dann zu aktivieren (anzuzeigen):
    document.getElementById('id').style.display='block';

    Schwupps ist der Text (oder das Formularfeld) da.

    Ansonsten kann JavaScript nicht nachträglich Code in die Seite einfügen.

    Hoffe, das hilft weiter,
    Jürgen

    1. REhi

      setz den einzufügenden HTML-Code in ein div mit der entsprechenden id und style="display:none".

      Um den Code dann zu aktivieren (anzuzeigen):
      document.getElementById('id').style.display='block';

      dabei hilf bestimmt was wie

      for(anzahl der felder)
      $id++;
      document.write('<input name="feld'.$id.'">');

      tut mir leid ich kann keine javascript syntax. aber ich denke das ist zu realisieren. Nun, muessen nur noch ein paar JS leute das konzept uebersetzen.

      Soweit tilman
      erm, mit ner serverseitigen loesungs isses kompatibler und ein wenig schneller und einfacher fuer mich. =]

      1. Teillösung gefunden: jedoch kriege ich das ganze nicht hin wenn schon etwas im <div id="form"> steht oder ich noch was hinzufügen möchte. Kenn jemand da ev. eine lösung

        mfG

        Thomas

        <html><head><title>Test</title>
        </style>
        <script type="text/javascript">
        <!--
        function make_form()
        {
          document.getElementById('form').innerHTML = "<input type="text" value="test" name="susi[]"> sfdg sd";

        }
        //-->
        </script>
        </head><body>

        <form action="info.php" method="post">
        <div id="form">
        </div>
        <input type="button" value="+" onClick="make_form()">
        <input type="submit">
        </form>

        </body></html>

    2. Hallo,

      setz den einzufügenden HTML-Code in ein div mit der entsprechenden id und style="display:none".

      Um den Code dann zu aktivieren (anzuzeigen):
      document.getElementById('id').style.display='block';

      Schwupps ist der Text (oder das Formularfeld) da.

      Ansonsten kann JavaScript nicht nachträglich Code in die Seite einfügen.

      Hallo könntest du mir ev. ein konkretes beispiel posten?

      Ich bin nicht sicher ob du das  ganze richtig verstanden hast.¨
       mit + sollen neue formular felder hinzugefügt werden können also nicht nur 1 sondern ev 20 oder so.

      mfG

      Thomas

      Hoffe, das hilft weiter,
      Jürgen

      1. Hallo,

        Hallo könntest du mir ev. ein konkretes beispiel posten?

        Ich versuchs

        Ich bin nicht sicher ob du das  ganze richtig verstanden hast.¨
        mit + sollen neue formular felder hinzugefügt werden können also nicht nur 1 sondern ev 20 oder so.

        <div id="feld1" style="display:hidden">
        HTML-Code
        </div>
        <div id="feld2" style="display:hidden">
        mehr HTML-Code
        </div>
        ...

        <a href="javascript:document.getElementById('feld1').style.display='block'">+</a>
        (öffnet feld1)

        <script language="javascript" type="text/javascript">
        <!--
        function oeffnefelder(x) {
           for(var i = 1; i <= x; i++) {
                document.getElementById('feld'+i).style.display='block'
           }
        }
        //-->
        </script>
        <a href="javascript:oeffnefelder(20)">+</a>
        (öffnet 20 Felder)

        Das sollte funktionieren auf IE ab 5.0 und Mozilla/Netscape 6, wahrscheinlich nicht auf Opera und bestimmt nicht auf Netscape 4.

        Wenn Du willst, das für die erscheinenden Elemente auch vorher schon der Platz bereitgehalten wird, dann nimm statt display visibility (hidden bzw. visible).

        Ach ja, auch wenn die Formularelemente nicht angezeigt werden sind sie natürlich da und deren (wahrscheinlich leere) Inhalte werden mit übermittelt. Um Formularelemente wirklich dynamisch zu erzeugen und nicht nur ein- oder auszublenden brauchts leider serverseitige Techniken (z.B. php)

        Viele Grüße,
        Jürgen

    3. Ansonsten kann JavaScript nicht nachträglich Code in die Seite einfügen.

      dem muß ich wiedersprechen:

      mit document.createElement() und  .insertBefore() bekommste das ganze rein ... ich habe mir eine mal eine Funktion geschrieben an der ich eine URL übergebe und aufgrund dieser ein Formular (unsichtbar) aufbaue und die werte setze und dann mit post abschicke ...

      interessant ist für dich der Bereich bei Schleife:

      // formular erzeugen
      var formular = '<form name=posturl_postformular method......>'

      var posturl_postformular = document.createElement(formular);
      document.body.insertBefore(posturl_postformular);

      // --- schleife ---
      var item = '<Input name=input1 .....'
      var posturl_postformularitem = document.createElement(item)
      posturl_postformularitem.value = defaultwert;
      document.posturl_postformular.insertBefore(posturl_postformularitem);
      // --- schleife ---

  2. Hallo Thomas

    Ich suche einen beispiel javascript der folgendes kann an einer stelle (mit einer id gekennzeichnet) beliebigen html code einfügen. Ich benötige das ganze für mein CMS system für die realisierung der 1:n beziehung.

    Muss es Javascript sein, oder kommt auch PHP in Frage?

    Gruss Kerstin

    1. Hallo Thomas

      Ich suche einen beispiel javascript der folgendes kann an einer stelle (mit einer id gekennzeichnet) beliebigen html code einfügen. Ich benötige das ganze für mein CMS system für die realisierung der 1:n beziehung.

      Muss es Javascript sein, oder kommt auch PHP in Frage?

      Hallo Kerstin
      Eher nicht da das ganze schnell sein soll. und es würde ziemlich komplex werden wenn mehrere formulare 1:n sind ;) wenn ich das ganze per javascript mache kann ich das das ganze einfach per array ansprechen.

      mfG

      Thomas

      Gruss Kerstin

      1. Hallo Thomas

        Ich suche einen beispiel javascript der folgendes kann an einer stelle (mit einer id gekennzeichnet) beliebigen html code einfügen. Ich benötige das ganze für mein CMS system für die realisierung der 1:n beziehung.

        Muss es Javascript sein, oder kommt auch PHP in Frage?

        Eher nicht da das ganze schnell sein soll. und es würde ziemlich komplex werden wenn mehrere formulare 1:n sind ;) wenn ich das ganze per javascript mache kann ich das das ganze einfach per array ansprechen.

        Hallo Thomas,

        Sorry, mit CMS kenn ich mich net aus und was Du genau machen willst, hab ich auch noch nicht so richtig verstanden. Ich dachte nur an die Dateifunktionen von PHP.

        viele Grüsse
        Kerstn