ph2887o: Dynamische Forms

tag,

ich quäle mich hier seit ein paar stunden mit folgender aufgabenstellung: ich brauche ein dynamisches formular in dem es zwei arten von einzeiligen eingabefelder gibt: 1. überschriften / themen, 2. inhalte / stichpunkte. dabei werden immer beliebig viele stichpunkte zu einer überschrift zugeordnet. die problem fingen für mich (der als php coder auch nur wenig ahnung von javascript hat) dann auch relativ schnell an. hab erst versucht an gegoogleten skripts rumzuwerkeln, aber eigentlich weiss man ja, dass das nichts bringt, wenn man nichtmal ansatzweise versteht, was man macht. also schön selfhtml gewälzt und dann ging es einigermaßen. naja.

ich hab mal unter www.73dpi.de/temp/test2.html hochgeladen, was ich geschafft habe. wie man sieht, werden ab der zweiten erzeugten überschrift halt die anzahl der schon vorhandenen stichwortfelder mitdupliziert. falscher bezug an irgendeiner stelle, aber ich finds nicht mehr (ist ja auch schon spät *g*)

viel komplizierter dann eine andere sache: und zwar müssen die formularfelder ja auch benannt werden, damit man sie später weiterverarbeiten kann und dabei dürfen die jeweiligen stichwortfelder ihren bezug zum zugehörigen themenfeld nicht verlieren (also sagen wir mal das themenfeld heisst "head1", dann sollten die stichwortfelder "head1-1", "head1-2", etc heissen)... keine ahnung, wie man das hinbekommt...

vielleicht kann es sich ja mal jemand anschauen, ich wäre für jede hilfe sehr dankbar.

gruss,

ph

  1. Hallo ph2887o,

    wie man sieht, werden ab der zweiten erzeugten überschrift halt die anzahl der schon vorhandenen stichwortfelder mitdupliziert.

    Wie wäre es, wenn Du immer neue Felder erstellst, statt nur zu kopieren? Dann könnte man Dein Zuweisungsproblem auch etwas besser in den Griff bekommen.

    Du schreibst Dir eine Funktion, der Du die Anzahl an Stichpunkten, den Namen der Überschrift und ggf. das Elternelement mit übergibst.

      
    function add(Len, Headline, ParentEl){  
      for (var i=0; i<Len; i++){  
        //Element erstellen...  
        var newEl = document.createElement("input");  
      
        //Eigenschaften hinzufügen...  
        newEl.name = Headline+"-"+(i+1);  
        newEl.type = "text";  
      
        //Einhängen...  
        ParentEl.appendChild(newEl);  
      }  
    }
    

    Ähnlich solltest Du auch bei Deinen Überschriften vorgehen.

    Mit freundlichem Gruß
    Micha

    --
    LeagueEditor JavaScript kostenlose Ligaverwaltung || richtig Messen will gelernt sein
    1. tag,

      hat funktioniert. besten dank. ich dachte an das klonen von divs, weil das in der formatierung wesentlich einfacher ist, als tabellen und kram per document.createElement zu erzeugen.

      gruss,

      ph