Avatar billede omtus_komikatus Nybegynder
19. juni 2004 - 20:24 Der er 36 kommentarer og
1 løsning

"Fil-fremviser" i iframe

Hej.. hmm.. jo, jeg skulle gerne bruge et script som er i stand til at vise alle filer i en bestemt mappe, frem i en select-box.. Man skal så kunne trykke på en af filerne i selectboxen, og filen skal blive vist i en iframe...

Har lige lavet et eksempel på hvad det er jeg egentlig mener:


http://www.geocities.com/omtus_komikatus/text-loader.htm

-Det virker selvfølgelig ikke.. Bare for at vise hvordan det skulle fungere (Og så er det en textbox der er i eksemplet i stedet for en iframe).. hmm... Ja, det var vist det tror jeg nok..

Kan nogen hjælpe? :)
Avatar billede ellebaek Nybegynder
19. juni 2004 - 22:57 #1
hmm...

Mon ikke du kan gøre det med en fil der hedder fx. vis.asp
der indeholder:

<%
if not request.querystring("fil") = "" then
dir = "filer/"
set fs = CreateObject("Scripting.FileSystemObject")
filespec = server.mappath(dir & request.querystring("fil"))
set file = fs.OpenTextFile(filespec,1)
response.write file.readAll
fs.close
end if
%>

så skal din select box se ud som noget i stilen af:

<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("filer"))
Set filesObject = folderObject.Files
response.write "<form method=""get"" action="""&request.servervariables("script_name")&""">"
response.write "<select name=""fil"" onchange=""this.form.submit()"">"
response.write "<option></option>"

For Each file In filesObject
  file = file.Name
  response.write "<option>" & file & "</option>"
next
response.write "</select>"
response.write "</form>"
%>
Avatar billede omtus_komikatus Nybegynder
19. juni 2004 - 23:06 #2
Altså? Min selectbox? Jeg forstår ikke... Hvor skal denne kode ind:

<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("filer"))
Set filesObject = folderObject.Files
response.write "<form method=""get"" action="""&request.servervariables("script_name")&""">"
response.write "<select name=""fil"" onchange=""this.form.submit()"">"
response.write "<option></option>"

For Each file In filesObject
  file = file.Name
  response.write "<option>" & file & "</option>"
next
response.write "</select>"
response.write "</form>"
%>
Avatar billede omtus_komikatus Nybegynder
19. juni 2004 - 23:19 #3
Det skal lige siges at jeg OVERHOVEDET ikke har forstand på ASP :)
Avatar billede ellebaek Nybegynder
19. juni 2004 - 23:48 #4
den kode med din select box sætter du bare ind der hvor du nu engang har siden liggende..

Det skal se ud som det her i det hele taget...


<html>
<head>
<title>Filviseren</title>
</head>
<body>
<table>
<tr><td>
<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("filer"))
Set filesObject = folderObject.Files
response.write "<form method=""get"" action="""&request.servervariables("script_name")&""">"
response.write "<select name=""fil"" onchange=""this.form.submit()"">"
response.write "<option></option>"

For Each file In filesObject
  file = file.Name
  response.write "<option>" & file & "</option>"
next
response.write "</select>"
response.write "</form>"
%>
</td>
<td>
<iframe src="fil.asp"></iframe>
</td>
</tr>
</table>
</body>
</html>

Det her vil jeg mene virker som det skal, men kan ikke helt overskue koden ;-)
Bør vidst snart smutte i seng...
Avatar billede omtus_komikatus Nybegynder
19. juni 2004 - 23:50 #5
? Jamen jeg har jo selectboxen i samme fil som iframen

Hvor mange filer skal der være?
Avatar billede omtus_komikatus Nybegynder
19. juni 2004 - 23:54 #6
Jeg er FORvirret..???
Avatar billede ellebaek Nybegynder
19. juni 2004 - 23:57 #7
det er kun filen der skal indeholdes i iframen der skal være i en fil for sig..

I alt skal du have 2 filer..
1: default.asp der indeholder det jeg skrev: 19/06-2004 23:48:11
2: fil.asp der indeholder det jeg skrev først..
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 00:29 #8
Hmm... Jahh... Altså.. Man kan sagtens åbne default.asp, men når man vælger en fil i selectboxen, så sker der ingenting... Iframen forbliver tom..

???
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 00:33 #9
- Og, det her er så min fejl, sorry, men ville bare lige spørge om du ikke gad lave det om; Filerne bliver vist i en selectbox, men det jeg egentlig ville have skrevet var listbox (ligesom i exemplet) ups..
Men det er ikke så vigtigt.. Jeg kan bare oprette det i et ny spm, hvis det er...
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 01:04 #10
ok, har fundet ud af det med listbox/selectbox.. Det er jo det samme! hehe.. Smarte mig.. Smækkede lige size=15 ind efter selectname=""fil""

Men, der er lige en anden ting med listboxen (eller selectboxen.. hehe)..
Det øverste felt i den er tomt.. Er det noget man kan lave om?
- Hvis ikke, så er det bare helt i orden :)
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 01:21 #11
Nåh joh (Jeg bliver ved)... Og også... hmm..
Du kan vel ikke lave sådan at der er en knap man skal trykke på for at vise filen, efter at man har markeret den i selectboxen (Ligesom i eksemplet)... :)

Det er altid rart med nogle irriterende tilføjelser hen ad vejen, ikk..
hehe..

Håber ikke jeg er for besværlig..
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 12:21 #12
OK... hmm.. Jeg har også fundet ud af det der med det tomme felt
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 12:26 #13
Men der er stadig det der med knappen, og så vil den heller ikke vise filerne i iframen, som jeg fortalte..
Jeg har to filer. Default.asp og fil.asp;

FILNAVN: default.asp
INDHOLD:
------------------------------------------------
<html>
<head>
<title>Filviseren</title>
</head>

<body leftmargin="20" rightmargin="25" background="back.jpg" bgproperties="fixed"
bgcolor="#ffffff" text="#000000" link="#000000" vlink="#000000" alink="#000000" scroll="no">

<center>
<br>
<p><strong>
<font face="small fonts, tahoma" size="+1">



</strong>



<table cellspacing="10">
<tr><td>
<iframe src="fil.asp" width="500" height="360"></iframe>
</td>
<td>
<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("text"))
Set filesObject = folderObject.Files
response.write "<form method=""get"" action="""&request.servervariables("script_name")&""">"
response.write "<select name=""fil"" size=19 onchange=""this.form.submit()"">"


For Each file In filesObject
  file = file.Name
  response.write "<option>" & file & "</option>"
next
response.write "</select>"
response.write "</form>"
%>

<input type="submit" value="                Vis fil                ">

</td>
</tr>
</table>
</center>

</p>

</body>
</html>
------------------------------------------------

FILNAVN: fil.asp
INDHOLD:
------------------------------------------------
<%
if not request.querystring("fil") = "" then
dir = "text/"
set fs = CreateObject("Scripting.FileSystemObject")
filespec = server.mappath(dir & request.querystring("fil"))
set file = fs.OpenTextFile(filespec,1)
response.write file.readAll
fs.close
end if
%>
------------------------------------------------

?
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 12:34 #14
- mappen med filerne i hedder 'text'
Avatar billede ellebaek Nybegynder
20. juni 2004 - 21:42 #15
Sorry... Jeg sov lige i går...!

Men giv mig 2 min.
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 22:19 #16
ok.. venter spændt :)
Avatar billede ellebaek Nybegynder
20. juni 2004 - 22:26 #17
lige 2 sek... Er lige i gang med et spil backgammon ;-)
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 22:27 #18
Hehe.. OK.. Respekt for det.. hehe..
Avatar billede ellebaek Nybegynder
20. juni 2004 - 22:30 #19
Nu er jeg klar...

Jeg vil sige det skal se ud som det her:

Default.asp:

<html>
<head>
<title>Filviseren</title>
</head>

<body leftmargin="20" rightmargin="25" background="back.jpg" bgproperties="fixed"
bgcolor="#ffffff" text="#000000" link="#000000" vlink="#000000" alink="#000000" scroll="no">

<center>
<br>
<p><strong>
<font face="small fonts, tahoma" size="+1">



</strong>



<table cellspacing="10">
<tr><td>
<iframe src="fil.asp?fil=<%=request.querystring("fil")%>" width="500" height="360"></iframe>
</td>
<td>
<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("text"))
Set filesObject = folderObject.Files
response.write "<form method=""get"" action="""&request.servervariables("script_name")&""">"
response.write "<select name=""fil"" size=19>"


For Each file In filesObject
  file = file.Name
  response.write "<option>" & file & "</option>"
next
response.write "</select>"
response.write "</form>"
%>

<input type="submit" value="                Vis fil                ">

</td>
</tr>
</table>
</center>

</p>

</body>
</html>

og fil.asp skal se ud som den gør...!
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 22:32 #20
Det virker ikke.. :S ???
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 22:34 #21
DVS. Den viser filerne i selectboxen, og man kan godt markere dem, men når man trykker på 'vis fil' sker der intet...
Avatar billede ellebaek Nybegynder
20. juni 2004 - 22:45 #22
Hmm...
Vi prøver lige noget andet...

<html>
<head>
<title>Filviseren</title>
</head>

<body leftmargin="20" rightmargin="25" background="back.jpg" bgproperties="fixed"
bgcolor="#ffffff" text="#000000" link="#000000" vlink="#000000" alink="#000000" scroll="no">

<center>
<br>
<p><strong>
<font face="small fonts, tahoma" size="+1">



</strong>



<table cellspacing="10">
<tr><td>
<iframe src="fil.asp?fil=<%=request.form("fil")%>" width="500" height="360"></iframe>
</td>
<td>
<%
Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("text"))
Set filesObject = folderObject.Files
response.write "<form method=""post"" action="""&request.servervariables("script_name")&""">"
response.write "<select name=""fil"" size=19>"


For Each file In filesObject
  file = file.Name
  response.write "<option>" & file & "</option>"
next
response.write "</select>"
response.write "</form>"
%>

<input type="submit" value="                Vis fil                ">

</td>
</tr>
</table>
</center>

</p>

</body>
</html>

Stadig samme fil.asp
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 22:47 #23
Nope.. Stadig det samme... Viser filer, kan markere.. Men der sker intet når man trykker på knappen..
Avatar billede ellebaek Nybegynder
20. juni 2004 - 23:04 #24
Så... Nu har jeg testet..

Det var jo et eller andet sted klart det ikke virkede med knappen, når den kom efter </form> ;-)

<html>
<head>
<title>Filviseren</title>
<meta name="Generator" content="Stone's WebWriter 4">
</head>

<body leftmargin="20" rightmargin="25" background="back.jpg" bgproperties="fixed"
bgcolor="#ffffff" text="#000000" link="#000000" vlink="#000000" alink="#000000" scroll="no">

<center>
<br>
<p><strong>
<font face="small fonts, tahoma" size="+1">



</strong>



<table cellspacing="10">
<tr><td>
<iframe src="fil.asp?fil=<%=request.form("fil")%>" width="500" height="360"></iframe>
</td>
<td>
<%
response.write "<form method=""post"" action=""" & request.servervariables("script_name") & ".asp"">"

Set fso = CreateObject("Scripting.FileSystemObject")
Set folderObject = fso.GetFolder(Server.MapPath("text/"))
Set filesObject = folderObject.Files

response.write "<select name=""fil"" size=19>"


For Each file In filesObject
  file = file.Name
  response.write "<option value=""" & file & """>" & file & "</option>"
next
response.write "</select>"

%>
<input type="submit" value="                Vis fil                ">
</form>
</td>
</tr>
</table>
</center>

</p>

</body>
</html>

Sådan her..
Så skal du lige rette i fil.asp, den skal rettes til:

<%
if not request.querystring("fil") = "" then
dir = "fil.asp/"
set fs = CreateObject("Scripting.FileSystemObject")
filespec = server.mappath(dir & request.querystring("fil"))
set file = fs.OpenTextFile(filespec,1)
response.write file.readAll
end if
%>
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:09 #25
hehe.. Jah, det kunne måske være derfor.. hehe.. MEN.. Det var det åbenbart ikke;

Når man vælger en fil og trykker på knappen, så åbner index.htm... ???

Det synes jeg da bare ikke hænger sammen på Nogen måde?

..hmm...?
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:11 #26
Virkede det hos dig?
Avatar billede ellebaek Nybegynder
20. juni 2004 - 23:14 #27
øhh...

Åbner den index.htm ..?

Jeg havde ingen problemer..
Hvad hedder dine filer?
og ligger default.asp for sig eller også i en iframe..?
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:15 #28
Ahh.. HMmm..! Tjah, fandt ud af at der er en server-fejl.. 404 - Not Found..?

Og den havde jeg så indstillet til index.htm...

Men.. Default.asp har jeg prøvet i et normalt frameset, og også bare at åbne den for sig selv... 404-fejl ting...

???
Avatar billede ellebaek Nybegynder
20. juni 2004 - 23:17 #29
hmm...

Hvad hvis du bare viser den i en fil for sig..?
Altså ikke i et frameset..?

Ellers så skal du måske rette en enkelt linie i scriptet, nemlig den her:
response.write "<form method=""post"" action=""" & request.servervariables("script_name") & ".asp"">"

For den virker da ikke, den skal hedde:

response.write "<form method=""post"" action=""default.asp"">"
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:20 #30
Tjah, det hjalp, eller.. Det er da fremskridt.. Tror jeg...?

Når man trykker vis fil dukker dette op i iframen:
----------------
Microsoft VBScript runtime error '800a004c'

Path not found

/fil.asp, line 6
----------------

???
Avatar billede ellebaek Nybegynder
20. juni 2004 - 23:21 #31
Hehe...
det var mig der lige lavede en kæmpe fejl før i min kommentar ;-)

<%
if not request.querystring("fil") = "" then
dir = "text/"
set fs = CreateObject("Scripting.FileSystemObject")
filespec = server.mappath(dir & request.querystring("fil"))
set file = fs.OpenTextFile(filespec,1)
response.write file.readAll
end if
%>

Sådan her skal fil.asp se ud..!
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:23 #32
Nå, ok.. Jeg syntes faktisk også det var lidt underligt med fil.asp/
- men jeg har jo ikke forstand på ASP

prøver det lige...
Avatar billede ellebaek Nybegynder
20. juni 2004 - 23:26 #33
c",)
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:26 #34
Jada... SÅ virker det - takker for hjælpen! :)

Du har selvfølgelig allerede fået points, bare send et svar.. :)

Men der er bare lige et problem med mine .txt-filer;
Alle linieskiftene er væk... Er det noget man kan gøre noget ved?
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:27 #35
Hovsa.. hehe.. du HAR jo sendt et svar... :) hehe.. sorry...
Avatar billede omtus_komikatus Nybegynder
20. juni 2004 - 23:28 #36
Sådan.. Points til dig ;) ...
Avatar billede ellebaek Nybegynder
20. juni 2004 - 23:31 #37
hmm...

Du kan gøre sådan her i stedet skulle jeg mene...

<%
if not request.querystring("fil") = "" then
dir = "text/"
set fs = CreateObject("Scripting.FileSystemObject")
filespec = server.mappath(dir & request.querystring("fil"))
set file = fs.OpenTextFile(filespec,1)
response.write replace(file.readAll,VbCrLf,"<br>")
end if
%>

så burde du have linieskift igen ;-)
Takker for points..!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester