ik ben bezig met een protocol-cms, waar het mogelijk moet zijn om meerdere bijlagen te kunnen koppelen aan een formulier op de volgende manier.
Als je een nieuw protocol invoert, is er een knop "bijlage", welke een klein venster opent, waar je middels een <input type=file> een bestand kunt selecteren.
Als je deze dan "submit" wordt deze met php geupload naar een tmp-directory waar hij in de wacht staat. Met JS wordt de naam van dit bestand op de volgende manier in het hoofd-formulier (van het procotol) gezet :
(dit is PHP, maar de vraag is meer JS - gerelateerd, hoop dat het goed is dat ik hem toch hier stel)
als ik dan een bestand upload, zet ik op deze manier de naam van het bestand in een hidden field in mijn opener-pagina. de string ziet er dan als volgt uit :
bestandsnaam.ext|bestandsnaam2.ext|
de "|" heb ik erin gezet zodat ik bestandsnamen later kan scheiden.
nu heb ik ook een delete-functie in mijn popup-scherm.
Deze zal eerst met PHP het bestand verwijderen door gebruik te maken van de ARRAY-key (alle bestanden worden in een array geplaatst)
Nu wil ik dezelfde ARRAY-key gaan gebruiken om met JS de bestandsnaam uit de string te halen.
Dit dacht ik te doen door de string bestandsnaam.ext|bestandsnaam2.ext| te ontleden , deze in een JS array te zetten, dan de ARRAY-positie die gelijk is aan de verkregen key te legen en dan de string weer opnieuw op te bouwen.
hieronder het javascriptje om een bestand uit de string te verwijderen.
hierbij is "object" de key van de array.
hoe kan ik in deze for lus nou de array-positie legen die gelijk is aan het object en hier dan weer een string van maken ?
Als je een nieuw protocol invoert, is er een knop "bijlage", welke een klein venster opent, waar je middels een <input type=file> een bestand kunt selecteren.
Als je deze dan "submit" wordt deze met php geupload naar een tmp-directory waar hij in de wacht staat. Met JS wordt de naam van dit bestand op de volgende manier in het hoofd-formulier (van het procotol) gezet :
code:
1
2
3
4
5
6
| if($b==1)
{
echo "<center><font color=red>toegevoegd</font></center>";
echo "<script language='Javascript'>opener.document.forms['form2'].elements['files'].value=opener.document.forms['form2'].elements['files'].value+'$bijlage'+'|';</script>";
echo "<script language='Javascript'>opener.document.forms['form2'].elements['omschrijving'].value=opener.document.forms['form2'].elements['omschrijving'].value+'$omschr'+'|';</script>";
} |
(dit is PHP, maar de vraag is meer JS - gerelateerd, hoop dat het goed is dat ik hem toch hier stel)
als ik dan een bestand upload, zet ik op deze manier de naam van het bestand in een hidden field in mijn opener-pagina. de string ziet er dan als volgt uit :
bestandsnaam.ext|bestandsnaam2.ext|
de "|" heb ik erin gezet zodat ik bestandsnamen later kan scheiden.
nu heb ik ook een delete-functie in mijn popup-scherm.
Deze zal eerst met PHP het bestand verwijderen door gebruik te maken van de ARRAY-key (alle bestanden worden in een array geplaatst)
Nu wil ik dezelfde ARRAY-key gaan gebruiken om met JS de bestandsnaam uit de string te halen.
Dit dacht ik te doen door de string bestandsnaam.ext|bestandsnaam2.ext| te ontleden , deze in een JS array te zetten, dan de ARRAY-positie die gelijk is aan de verkregen key te legen en dan de string weer opnieuw op te bouwen.
hieronder het javascriptje om een bestand uit de string te verwijderen.
hierbij is "object" de key van de array.
code:
1
2
3
4
5
6
7
8
9
10
| function DI(object)
{
var string1 = opener.document.forms['form2'].elements['files'].value;
a1 = string1.split("|"); // zet alle bestanden in de array a1
for (i=0; i<a1.length; i++)
{
// hier gaat al iets mis...na de laatste "|" wordt er nog een arraypositie
//gevuld.. hoe vang ik dit af ?
}
} |
hoe kan ik in deze for lus nou de array-positie legen die gelijk is aan het object en hier dan weer een string van maken ?
[ Voor 9% gewijzigd door whitehouse op 21-04-2004 11:32 ]
| www.everythingisspiritual.com | www.mosaic.org |