e7: Nachträglich Code hinzufügen

Hi,

ich schreibe gerade an einer Weboberfläche, bei der man Dateien uploaden kann bzw. können soll. Allerdings möchte ich nicht 15 Uploadfelder reinsetzten, die dann im Ernstfall immer noch nicht reichen, sondern eher je nach Bedarf Felder hinzufügen... Naja, wie auch immer, ich hab mir folgendes gedacht:

<script type="text/javascript">
function adduploadform() {
 var a;
 a = document.getElementById('e_fileupload').innerHTML;
 a = a + "<input type="file" name="u_upload[]"/><br/>";
 document.getElementById('e_fileupload').innerHTML = a;
}
</script>

<form method="post" action="index.php?id=neu2" class="seitenbreite">
<fieldset><legend>Anh&auml;nge</legend>
<a href="javascript:adduploadform();">Neu</a><br/><br/><div id="e_fileupload"></div>
</fieldset>
</form>

Funktioniert eigentlich auch gut - aber nur so lange noch keine Daten im Feld stehen, in diesem Falle keine Dateien ausgewählt sind. Sobald ich allerdings eine Datei auswähle, und diesen Code ausführe (auf den Link klicke), leeren sich die Formularfelder verständlicherweise...

Nach einer längeren Suche im Forum und in SelfHTML allgemein hab ich auch ein paar Funktionen gefunden, die alle mit insert oder add und so anfangen, keine ist allerdings brauchbar - die laufen alle nicht.

Deswegen meine Frage: Wie mach ich das, dass der Inhalt der Felder erhalten bleibt, ohne vorher alle Felder in ein Array zu lesen und danach wieder zurückzuschreiben und solche Dinge? Sprich: Einfach einen HTML-Code anhängen (in das DIV schreiben). Wichtig ist dabei vor allem, dass der Code in Mozilla 1.8 und aufwärts läuft, mit anderen Browsern wird die Seite nicht verwendet. Danke schon mal im Voraus.

E7

  1. Hi E7,

    Wie mach ich das, dass der Inhalt der Felder erhalten bleibt, ohne vorher alle Felder in ein Array zu lesen und danach wieder zurückzuschreiben und solche Dinge? Sprich: Einfach einen HTML-Code anhängen (in das DIV schreiben). Wichtig ist dabei vor allem, dass der Code in Mozilla 1.8 und aufwärts läuft, mit anderen Browsern wird die Seite nicht verwendet. Danke schon mal im Voraus.

    ohne jetzt nachgeprüft zu haben, ob es so vielleicht auch für Deinen Zweck nutzbar ist, benutze ich ein anderes Verfahren, was sich bei mir (selbst mit den lieben IE) bewehrt hat.

    <html>
    <head>
     <title>Eddis Kiste</title>
     <script type="text/javascript">
     function conf()
      {
      x=prompt("Wieviele Dateien sollen abgeloadet werden","")
      x=(x>19) ? prompt("Die Anzahl ist zu hoch","") : x
      for(i=0;i<x;i++)
       {
       d=document.createElement('div');
       n=document.createElement('input');
       n.type="file"
       n.name="f"+i
       d.appendChild(n)
       document.getElementById('form').appendChild(d)
       }
      }
     </script>
    </head>
    <body onLoad="conf()">
    <form action="./" method="post" enctype="multipart/form-data">
    <div id="form"></div>
    <input type="submit">
    </form>
    </body>
    </html>

    Gruß aus Berlin!
    eddi

    1. Hi,

      vielen Dank, funktioniert ja prächtig, auch wenn ich hier die Elemente einzeln erstellen muss und nicht einfach einen String mit HTML-Code hinzufügen kann...

      E7