04. november 2003 - 16:41Der er
16 kommentarer og 1 løsning
Billede dropdown ASP
Hejsa
Jeg har et lille system hvor man kan uploade billeder til en bestemt mappe.
I et nyhedsmodul skal jeg så have en dropdownmenu, hvor man kan vælge ud fra alle billederne i mappen.
Jeg har også dropdownmenuen i nyhedsmodulet og det fungerer også fint, men når man har lavet en nyhed og vil ind og redigere den, så vil jeg gerne have "selected" det bestemte billede man nu har valgt.
I nyhedsmodulets DB har jeg et felt der hedder news_img, hvor billedstien bliver gemt.
Her er min dropdownmenu:
________________________________ <% dim id dim action id = request("id") action = request("action")
select case action case 1 Query= " SELECT * from tbl_news where id =" & id Set Res = Conn.Execute(Query)
Set objFS = Server.CreateObject("Scripting.FileSystemObject") Set objBaseFolder = objFS.GetFolder(folderspec)
Set objFiles = objBaseFolder.Files
For Each f1 in objFiles fe = Lcase(right(f1.name,3)) if ((fe = "png") or (fe = "gif") or (fe = "jpg")) then Redim preserve imageUrl(Ubound(imageUrl) + 1) imageUrl(Ubound(imageUrl)) = f1.name end if Next %>
<select name="news_img" class="inputlang"> <option name="news_img"> - No image -</option> <% for i = 0 to Ubound(imageUrl) Response.write ("<option>" & imageUrl(i) & "</option>") next %> </select>
dim ErValgt for i = 0 to Ubound(imageUrl) if imageUrl(i) = rs("news_img") then ErValgt = " selected" else ErValgt = "" end if Response.write ("<option" & ErValgt & ">" & imageUrl(i) & "</option>") next
Hvad kommer der til at stå i imageUrl(i) ? Og hvad står der i feltet news_img ?
ImageUrl(i) er filerne fra mappen, når man har valgt en af dem, så kommer billedstien til at stå i feltet news_img. F.eks. billede1.gif.
Jeg har testet det du skrev, men når jeg sætter det op på nedenstående måde, så er billedet godt nok valgt, men jeg kan ikke vælge de andre billeder der ligger i mappen...
dim ErValgt for i = 0 to Ubound(imageUrl) if imageUrl(i) = rs("news_img") then ErValgt = " selected" else ErValgt = "" end if Response.write ("<option" & ErValgt & ">" & imageUrl(i) & "</option>") next
Set objFS = Server.CreateObject("Scripting.FileSystemObject") Set objBaseFolder = objFS.GetFolder(folderspec)
Set objFiles = objBaseFolder.Files
For Each f1 in objFiles fe = Lcase(right(f1.name,3)) if ((fe = "png") or (fe = "gif") or (fe = "jpg")) then Redim preserve imageUrl(Ubound(imageUrl) + 1) imageUrl(Ubound(imageUrl)) = f1.name end if Next %> <select name="news_img" class="inputlang"> <% dim ErValgt for i = 0 to Ubound(imageUrl)-1 if imageUrl(i) = Res("news_img") then ErValgt = "selected" else ErValgt = "" end if Response.write ("<option" & ErValgt & ">" & imageUrl(i) & "</option>") next %> </select> _______________________________________ Jeg har også prøvet at gøre det uden "ervalgt" og i begge tilfælde. Kommer der bare en, - "siden kan ikke vises"...
Jeg er villig til at give flere points, men hvordan sætter jeg egentlig flere point på højkant? Jeg er lidt en noob til det her. ;)
med Option Explicit tvinges du til at definere dine variabler med dim variabelnavn.. på den måde kan den finde ud af om du har lavet stavefejl.. Response.Buffer = False betyder at den skal sende det den har lavet, direkte til browseren, i stedet for at vente til hele siden er genereret.. så har du en bedre chance for at se hvor fejlen er henne..
husk: når du får en fejlmeddelelse, skriv fejlmeddelelsen og den linie den siger der er fejl i, her..
Selvom jeg sætter det ind i toppen, så viser den stadig det samme - Siden kan ikke vises" - Er det fordi det er på en side, hvor man retter en bestemt ID?
Set objFS = Server.CreateObject("Scripting.FileSystemObject") Set objBaseFolder = objFS.GetFolder(folderspec)
Set objFiles = objBaseFolder.Files
For Each f1 in objFiles fe = Lcase(right(f1.name,3)) if ((fe = "png") or (fe = "gif") or (fe = "jpg")) then Redim preserve imageUrl(Ubound(imageUrl) + 1) imageUrl(Ubound(imageUrl)) = f1.name end if Next %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Buket & Bouquet</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <!--#include file="DBOpen.asp" --> <%
query = "update tbl_news set news_ovs='"& news_ovs &"',news_txt='"& news_txt &"',news_img='"&request.form("news_img")&"',news_date='"&request.form("news_date")&"',news_date_down='"&request.form("news_date_down")&"' WHERE ID=" & id
Conn.execute(Query) response.redirect("nyhedsmodul.asp") case 3 query = "delete from tbl_news where ID = " & id Conn.Execute(query) Response.redirect("nyhedsmodul.asp")
case 4 %> <form action="news_edit.asp?action=5" method="POST" name="opret">
<% case 5 news_ovs = Replace(Request.Form("news_ovs"), "'", "''") news_txt = Replace(Request.Form("news_txt"), "'", "''") query = "insert into tbl_news (news_ovs,news_txt,news_img,news_date,news_date_down) values ('"& news_ovs &"','"& news_txt &"','"&request.form("news_img")&"','"&request.form("news_date")&"','"&request.form("news_date_down")&"')" Conn.execute(Query) Response.redirect("nyhedsmodul.asp") case else Response.write("Denne side kan ikke bruges denne måde") end select
Det er nok den øverste halvdel af koden du skal kigge på, det er her jeg kan redigere en bestemt nyhed. - Den nederste del er når man indsætter et nyt, - det virker fint nok. ------------------------------------------>>>>
Set objFS = Server.CreateObject("Scripting.FileSystemObject") Set objBaseFolder = objFS.GetFolder(folderspec)
Set objFiles = objBaseFolder.Files
For Each f1 in objFiles fe = Lcase(right(f1.name,3)) if ((fe = "png") or (fe = "gif") or (fe = "jpg")) then Redim preserve imageUrl(Ubound(imageUrl) + 1) imageUrl(Ubound(imageUrl)) = f1.name end if Next %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <title>Buket & Bouquet</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <link href="css/style.css" rel="stylesheet" type="text/css"> </head> <!--#include file="DBOpen.asp" --> <%
query = "update tbl_news set news_ovs='"& news_ovs &"',news_txt='"& news_txt &"',news_img='"&request.form("news_img")&"',news_date='"&request.form("news_date")&"',news_date_down='"&request.form("news_date_down")&"' WHERE ID=" & id
Conn.execute(Query) response.redirect("nyhedsmodul.asp") case 3 query = "delete from tbl_news where ID = " & id Conn.Execute(query) Response.redirect("nyhedsmodul.asp")
case 4 %> ---------------------------------------------->>>>
Feltet i databasen hvori billednavnet bliver gemt hedder news_img.
Du skal betragte denne side som siden man kommer ind på efter man har valgt at redigere en bestemt nyhed. Og fra den foregående side sender jeg ID med over, skal det så stadig hedde request.querystring?
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.