PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Mehrere Dateien hochladen



Turbohummel
16-12-2005, 14:46
Hallo,

ich möchte mehrere Datein hochladen lassen. Anfangs soll nur ein Upload-Feld angezeigt werden (soweit klappts), dann ein Link mit "weitere Datei hochladen". Bei Klick auf diesen soll nochmal ein Upload-Feld angezeigt werden. Des klappt auch. Nur wenn vorher in einem Upload-Feld schonmal eine Datei ausgewählt wurde, verschwindet diese, wenn man auf den Link klickt.

Hier der Code:


<div style="display:none" id="hidden">
<input type="file" name="file_1" size="50" id="file" /><br /><br />
</div>
<div id="frame">
<!-- Hier soll die Liste stehen -->
</div>

Das Javascript:


var counter;
counter = 1;

function add_row(){
field = document.getElementById('hidden');
target = document.getElementById('frame');
document.getElementById('file').name = 'file' + counter;
target.innerHTML = target.innerHTML + field.innerHTML;

counter ++;
}


Wie kann ich jetzt verhindern, dass die bisherige Auswahl verschwindet?

Turbohummel
17-12-2005, 17:22
Hat sich erledigt.

nEox
17-12-2005, 21:09
Hallo Turbohummel,

darf man fragen wie jetzt gemacht hast?

Viele Grüße,

nEox

Turbohummel
17-12-2005, 21:40
Die Anzahl der maximal hochladbaren Dateien ist bereits beim Aufruf des PHP-Scriptes bekannt (über ein Config-File). Jetzt werden die einzelnen <input type="file"> gleich nach dem Laden der Seite von JS erzeugt (z.B. 20 Stück). Das <div> um den Input herum bekommt eine eindeutige ID und wird auf display:none; gesetzt. Davon möchte ich hier noch keinen Code zeigen, da das Ganze noch ziemlich wüst ist.

Das JS zum Aktiveren des jeweils nächsten Blocks sieht dann so aus (die Funktion wird über onclick auf den Link aufgerufen):


var counter;
counter = 1;

function add_row(){
$e = document.getElementById('block_'+counter);
if($e != null){
$e.style.display = 'block';
}
counter ++;
$n = document.getElementById('block_'+counter);
if($n == null){
$a = document.getElementById('add');
$a.innerHTML = '';
}
}
Das Element mit der ID"add" ist das <div>, dass den Link für den nächsten Upload enthält.

nEox
18-12-2005, 16:21
ah das ist schlau die DIV's vorher zu erzeugen und dann auszublenden. Ein Kollege hatte mal ein ähnliches Problem, aber darauf bin ich nicht gekommen ^^

Vielen Dank fürs Erklären!

Grüße,

nEox