+ Antworten
Ergebnis 1 bis 4 von 4

Thema: Formular dynamisch generieren

  1. #1
    jph
    jph ist offline
    TP-Veteran jph ist auf einem guten Weg Avatar von jph
    Registriert seit
    Apr 2001
    Beiträge
    1.577

    Formular dynamisch generieren

    Hallo zusammen,

    möchte folgendes tun:
    aus einer auswahl liste möchte ich einen wert auswählen (es ist eine Zahl) und diese anzahl von malen möchte ich ein Input (type="text") -Feld generien? geht das?
    document.writeln() hab ich rumprobiert aber nicht so wirklich das was ich suche.


    gruß

    jan

  2. #2
    TP-Senior Karsten Müller ist auf einem guten Weg
    Registriert seit
    Aug 2003
    Ort
    Dresden
    Beiträge
    248
    Guten Tag.

    Prinzipiell ist dein Problem schon lösbar. Was du brauchst, sind je nach Unterstützung seitens des Browser's:
    Code:
    innerHTML
    
    createElement()
    setAttribute()
    appendChild()
    
    und eventl. noch
    insertBefore()
    Zumindest hab ich mal mit diesen Dingen ein ähnlich geartetes Problem gelöst.

    Hilft dir das weiter?


    Beste Grüße . . . Karsten
    Der Anfang einer jeden Katastrophe ist eine besch...ne Vermutung.

    Klaviertransport gefällig? :-)

  3. #3
    jph
    jph ist offline
    TP-Veteran jph ist auf einem guten Weg Avatar von jph
    Registriert seit
    Apr 2001
    Beiträge
    1.577
    hallo karsten, hallo forum,

    also vom prinzip her hat mir das schon geholfen. mit den von dir genannten befehlen schaffe ich es einige formulare zu generieren. aber leider an der falschen stelle. ich habe folgendes vor:
    Ich habe auf der Website folgenden Code:
    Code:
    <table border="0" cellspacing="0">
    
    					<tr>
    					 <td>Bestellnummer</td>
    					 <td>Beschreibung</td>
    					 <td>Abmessung</td>
    					 <td>Einheit</td>
    					</tr>
    		<!--von hier-->			<tr>
    
    					<td><input type="text" name="variation_bestellnummer[]" id="variation_bestellnummer[]" value="" /></td>
    					<td><input type="text" name="variation_beschreibung[]" id="variation_beschreibung[]" value="" /></td>
    					<td><input type="text" name="variation_abmessung[]" id="variation_abmessung[]" value="" /></td>
    					<td><select name="variation_einheit[]" id="variation_einheit[]">
    					<option value=""></option>
    					<option value="cm">cm</option>
    					<option value="mm">mm</option>
    					<option value="m">m</option>
    
    					<option value="ml">ml</option>
    					<option value="g">g</option>
    					</select></td>
    					</tr><!--bis hier-->
    					</table>
    und nun würde ich gerne einen block wie "von hier" "bis hier" im code gekennzeichnet direkt dahinter setzen (also als zusätliche tabellenzeile). mein js-ansatz sieht so aus :
    Code:
    <script language="Javascript">
    function erstelle_ausfuehrung()
    {
    // Elemente kreieren
    var element_1 = document.createElement("input");
    var element_2 = document.createElement("input");
    var element_3 = document.createElement("input");
    
    // Attribute setzen
    element_1.type="text"
    element_2.type="text"
    element_3.type="text"
    element_1.name="variation_bestellnummer[]"
    element_2.name="variation_beschreibung[]"
    element_3.name="variation_abmessung[]"
    
    // das komplette <a> zum body hinzufügen
    document.body.appendChild(element_1);
    document.body.appendChild(element_2);
    document.body.appendChild(element_3);
    
    
    // Testen des HTMLs innerhalb von body
    //document.write(document.body.innerHTML);
    document.write(document.head.innerHTML);
    document.write(document.body.innerHTML);
    }
    </script>
    allerdings schaffe ich es natürlich damit nur das ganze ganz oben auf der seite hin zu setzen. das mit dem insertBefore() hab ich noch nicht so ganz verstanden(auch bei selfhtml nicht *ARG* ) irgentwie muss ich dem doch sagen können. füge nach so und so ein! odeR?

  4. #4
    TP-Senior Karsten Müller ist auf einem guten Weg
    Registriert seit
    Aug 2003
    Ort
    Dresden
    Beiträge
    248
    Guten Tag.

    Das deine neuen Formularfelder am Anfang der Seite erscheinen, liegt daran, dass du das auch so verlangst. ;)
    Code:
    document.body.appendChild(element_1);
    Eigentlich müsstest du deinen Tabellenzeilen eine ID verpassen und dann mittels
    Code:
    document.getElementById('blah').appendChild(element_1);
    eine neue Tabellenzeile einsetzten.

    Ich hab mir aber deinen Code noch nicht komplett angesehen. Möglicherweise gibt es da auch noch andere Probleme. Dann wäre mir aber ein URL oder der komplette Code der Seite lieber. :)


    Beste Grüße . . . Karsten
    Der Anfang einer jeden Katastrophe ist eine besch...ne Vermutung.

    Klaviertransport gefällig? :-)

+ Antworten

Aktive Benutzer

Aktive Benutzer

Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)

     

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 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51