webForumDet fria alternativet

Array

8 svar · 226 visningar · startad av aleborg

aleborgMedlem sedan jan. 20013 341 inlägg
#1

jag är värdelös på javascript och behöver därför lite hjälp!

Jag har en sida med ett formulär, på sidan finns en länk till en popup-ruta där man kan ladda upp en fil. När filen är uppladdad så stängs popupfönstret, när det stängs så vill jag att filnamnet ska komma upp i en lista i formuläret utan att sidan laddas om.

Hur ska man göra? Förmodar att man får lägga in det i en array?
Listan ser ungefär så här:

• Filnamnet.gif<br>

aleborgMedlem sedan jan. 20013 341 inlägg
#2

Ett alternativ skulle även vara att när popupen stängs så submittar den även formuläret till en ny URL istället för den som står i FORM taggen.

JojoxxMedlem sedan juni 20004 308 inlägg
#3

Jag är inte riktigt säker på om jag hänger med hur sidan ser ut, men som jag tolkar det har du en sida (a) med ett formulär. Från denna sida kan du öppna en sida (b) i ett popup-fönster. Från denna sidan kan du ladda upp en fil som tas emot av en annan resurs/sida (c). Från sida c vill du sedan skriva ett värde till formuläret på sidan i moderfönstret (a)? Stämmer det så längt? I så fall kan du använda (från c);

window.opener.formulärsnamn.fältnamn.value+="filnamn"

"filnamn" får du sedan skriva dit från den sida (asp kanske) som tar emot filen.

JojoxxMedlem sedan juni 20004 308 inlägg
#4

Börja med att lägga in detta på "Edit Page"-sidan;

<script type="text/javascript" language="JavaScript">
function setFileName(name){
	document.getElementById('filename').innerHTML="<a href=\"../files/pages/14/"+name+"\" target=\"_blank\">files/pages/14/"+name+"</a>";
}
</script>

"14" lägger du antagligen enklast in via ASP ( <%=request.QueryString("page")%> )

Sedan sätter du dit <span id="filename"></span> där filnamnet skall visas på sidan.

Till sist, från popup-fönstret, i <form>-taggen, lägger du till; onSubmit="window.opener.setFileName(this.blob.value.substring(this.blob.value.lastIndexOf('/')+1)); return true;"

aleborgMedlem sedan jan. 20013 341 inlägg
#5

Tack det fungerar med undantag av några saker.

Fick ändra
this.blob.value.lastIndexOf('/')
till
this.blob.value.lastIndexOf('\\')

Och om man laddar upp en till så ersätts den tidigare uppladdade filens namn i listan!

När man har laddat upp en fil så redirectas popupen till sig själv och på OnLoad i body-taggen ligger javascript:window.close()
Det bästa vore om man samtidigt kunde skicka filnamnet samt ID-numret på den filen(läggs in i en databas efter uppladdningen) till den andra sidan, istället för "onsubmit"

JojoxxMedlem sedan juni 20004 308 inlägg
#6

Och om man laddar upp en till så ersätts den tidigare uppladdade filens namn i listan!

Ok, jag satte mig inte in i hur det är tänkt att upload'en skall fungera, men det är bara att till ett "+" framför "=" efter "innerHTML", alltså ".innerHTML+=" osv...

När man har laddat upp en fil så redirectas popupen till sig själv och på OnLoad i body-taggen ligger javascript:window.close()
Det bästa vore om man samtidigt kunde skicka filnamnet samt ID-numret på den filen(läggs in i en databas efter uppladdningen) till den andra sidan, istället för "onsubmit"

**Visst, du kan flytta anropet från onSubmit-eventet och lägga det på sidan som tar emot filen i ett <script>-block istället, men då får du returnera filnamnet via ASP;

window.opener.setFileName("<%=filnamnet%>");

Det är med id't hänger jag inte med på. Det enda ID jag såg var knutet till sidan som man editerar. Såg inget unikt ID för varje fil man laddar upp.**

aleborgMedlem sedan jan. 20013 341 inlägg
#7

Det blir ett unikt id för varje fil, om du uppdaterar sidan efter laddat upp en fil så ser du att det finns en liten soptunna efter filnamnet, i länken på soptunnan så finns ID numret. När filen laddas upp så sparas sökväg, filnamn, datum samt vilken sida som filen tillhör(dvs "14" på den sidan du leker med)

det bästa hade varit att kunna skicka med filnamn, datum samt id i window.opener.setFileName("<%=filnamnet%>");

JojoxxMedlem sedan juni 20004 308 inlägg
#8

Visst, inga problem det heller, det är bara att fylla på med argument;

window.opener.setFileName("<%=filnamnet%>","<%=datum%>","<%=id%>");

och funktionen;

function setFileName(name,datestr,idstr){
document.getElementById('filename').innerHTML="<a href=\"../files/pages/14/"+name+"\" target=\"_blank\">files/pages/14/"+name+"</a> Uploaded:"+datestr+"<a href=\"page_edit.asp?page=14&delfile="+idstr+"\">delete</a><br>";
}

aleborgMedlem sedan jan. 20013 341 inlägg
#9

Tackar, nu funkar allt som det ska :)

129 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
126 ms — hämta tråd, inlägg och bilagor (db)