Just nu i M3-nätverket
Gå till innehåll

Dynamiskt Checkbox


matt

Rekommendera Poster

Har en sida där jag listar upp alla filer som jag har i en viss folder på hårdisken. Sen vilja jag använda en Checkbox där man ska kunna "kryssa i" vilka filer man ska ta bort.. Undrar hur man ska kunna identifera och behandla de checkboxar som är ikryssade. Så här ser listningen ut av filerna på hårddisken.

 

<form action="erasemail.asp" name="deleteform" method="post">

<tr>

<td colspan="2"><a href="../savedmail/mail/<%=Session("foldername")%>/<%=fileName.name%>" class="link04" target="_blank"><img src="../images/dir_htm.gif" border="0">&nbsp;&nbsp;<%=fileName.name%>&nbsp;&nbsp;</a></td>

<td colspan="2" align="right"><input type="checkbox" name="<%=fileName.name%>"></td>

</tr>

<%

Next

set fso = nothing

set folder = nothing

%>

<tr>

<td width="410">&nbsp;</td>

<td width="77" align="right"><input type="submit" name="Submit" value="Radera"></td>

<td width="77" align="right"><input type="button" value="Tillbaka" name="goback2" onClick="goBack('../frames/tops.asp','listfolders.asp' );"></td>

</tr>

</form>

 

Har sökt förgäves på nätet efter exempel nån som har nått tips på hur jag ska fortsätta och ta med mig värdena till erasemail.asp och radera de filer som är ikryssade.

Länk till kommentar
Dela på andra webbplatser

Om du istället för att ge checkboxarna samma namn som filen ger alla checkboxar samma namn och sätter filnamnet som value istället:

 

<input type="checkbox" name=filnamn" value="<%=fileName.name%>">

 

Så kommer du på sidan som tar emot formuläret (erasemail.asp) kunna ta emot värdena i en array typ:

 

arrFiler = request.form("filnamn")

 

Hoppas jag knuffat dig in på rätt spår nu iallafall!

 

/Niklas

 

Länk till kommentar
Dela på andra webbplatser

Ok.. så långt är jag med. Har ändrat som du sa men det verkar inte funka att bara skriva arrFiler=Request.Form("filnamn")på erasemail.asp sidan. Det finns inget i arrFiler när jag testar att skriva ut den med Response.Write(arrFiler)

 

/Mattias

 

 

 

 

[inlägget ändrat 2002-09-18 16:16:09 av matt]

Länk till kommentar
Dela på andra webbplatser

En sak jag såg nu är att du verkar loopa utanför <form> alltså din output kommer innehålla en

<form action="erasemail.asp" name="deleteform" method="post">

 

för varje fil men bara en </form> i slutet. Dessutom kan det krångla lite att lägga en form inne i en tabell om du förstår vad jag menar? Det bästa är att du flyttar upp <form>-delen ovanför <table> och sen stänger du formuläret efter </table>

 

Ska kolla på varför du inte får något i variabeln. Den borde innehålla en kommaseparerad lista på alla filnamn, men det kan eventuellt bero på att du har flera <form>

 

/Niklas

 

 

Länk till kommentar
Dela på andra webbplatser

O Nu till nästa problem.. på erasemail.asp sidan...

Jag har skrivit följande:

<%

exfolder=Session("foldername")

arrfiles=Request.Form("checkbox")

 

Dim fs,filespec,folderdir

 

set fs=CreateObject("Scripting.FileSystemObject")

folderspec = Server.MapPath("../savedmail/mail/" + Session("foldername"))

 

Set folder = fs.GetFolder(folderspec)

 

For Each value in arrfiles

f=fs.GetFile(folder+"\"+ arrfiles)

f.delete

Next

 

Response.Redirect("listfiles.asp")

 

%>

Men får upp felmeddelandet:

Körningsfel i Microsoft VBScript (0x800A01C3)

Objektet måste vara en mängd.

/mailsys/savedmail/erasemail.asp, line 12

Det funkar att ta bort en fil när jag bara skriver f=fs.GetFile(folder+"\"+ arrfiles)

f.delete

Men sen är det stopp när jag föröker loopa genom arrayen..

Tacksam för hjälp

/Mattias

 

Länk till kommentar
Dela på andra webbplatser

Jag gissar att det inte är en riktig array utan en strängvariabel med filnamnen bara separerade med kommatecken.

 

Testa split() för att få strängen till en array:

 

arrFiles = split(arrfiles, ",")

 

/Niklas

 

Länk till kommentar
Dela på andra webbplatser

 

Mja det funkade inte riktigt heller... Skrev som du sa men får upp

felmeddelandet:

 

Inkompatibla typer

/mailsys/savedmail/erasemail.asp, line 14

/Mattias

 

 

 

Länk till kommentar
Dela på andra webbplatser

<%

exfolder=Session("foldername")

arrfiles=Request.Form("checkbox")

arrFiles = Split(arrfiles, ",")

 

Dim fs,filespec,folderdir

 

set fs=CreateObject("Scripting.FileSystemObject")

folderspec = Server.MapPath("../savedmail/mail/" + Session("foldername"))

 

Set folder = fs.GetFolder(folderspec)

 

Rad 14 :For Each value in arrFiles

f=fs.GetFile(folder+"\"+ arrFiles)

f.delete

Next

 

Response.Redirect("listfiles.asp")

 

%>

 

 

 

Länk till kommentar
Dela på andra webbplatser

Testa följande loop istället:

 

For intCount = 0 to UBOUND(arrFiles)

f=fs.GetFile(folder+"\"+ arrFiles(intCount))

f.delete

Next

 

/Niklas

 

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...