Jag lade in följande kod i min functions.inc som jag inkluderar på alla sidor
(har flera funktioner där)
<% function checkImg(imgName)
if imgName exists then checkImg = imgName
else checkImg = notAvaliable
end function %>
Och sedan la jag in denna sträng i asp-sidan:
<img src="products/<%=checkImg(Request.QueryString("ID"))%>.jpg">
Men då får jag:
Feltyp:
Kompileringsfel i Microsoft VBScript (0x800A03F9)
'Then' förväntas.
/webshop/inc/functions.asp, line 119, column 11
if imgName exists Then checkImg = imgName
----------^
<%= GetImg(Request.Querystring("id"))%>
<%
'// Kontrollerar om bild finns.
Function GetImg(str)
'// mappen som bilderna ligger.
strCat = "products/"
'// skapar bildnamn och lägger till ändelsen .jpg
strFile = str &".jpg"
'// bygger ihop mappen och filnamnet för kontroll.
strPath = strCat &""& strFile
'// Skapar objektet
Set file = Server.CreateObject("Scripting.FileSystemObject")
'// Kontrollera om filen finns
If file.FileExists(Server.MapPath(strPath)) Then
'// om bilden finns.
GetImg = "<img src='"& strPath &"' alt='"& strFile &"' />"
Else
'// om bilden saknas.
GetImg = "Bild saknas"
End if
End Function
%>
Jag har nu lagt in SannyW's kod in i min function.inc (som är inkluderad):
<%
'// Kontrollerar om bild finns.
Function GetImg(str)
'// mappen som bilderna ligger.
strCat = "products/"
'// skapar bildnamn och lägger till ändelsen .jpg
strFile = str &".jpg"
'// bygger ihop mappen och filnamnet för kontroll.
strPath = strCat &""& strFile
'// Skapar objektet
Set file = Server.CreateObject("Scripting.FileSystemObject")
'// Kontrollera om filen finns
If file.FileExists(Server.MapPath(strPath)) Then
'// om bilden finns.
GetImg = "<img src='"& strPath &"' alt='"& strFile &"' />"
Else
'// om bilden saknas.
GetImg = "<img src='pics/nopic.gif' border='0'>"
End if
End Function
%>
Sedan kör jag med följande kod i själva dokumentet som används.
Dock får meddelandet "loop" förväntas på rad 1688. (det är <% else %> raden)
Jag har ju en loop längre ner, som ska "täcka" det, eftersom den ska rada upp flera saker. Kan någon säga mig vad som är fel?
<% ' *** Get the latest products from database
Set C = Server.CreateObject("ADODB.Connection")
C.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databejs.mdb")
Set R = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT TOP " & intAmountLatestProducts & " ID, product, price FROM products ORDER by ID DESC"
R.Open SQL, C, 1, 3
If Not R.EOF Then
Do Until R.EOF %>
<a href="default.asp?id=<%=R("ID")%>"><%= GetImg(Request.Querystring(R("id")))%>
<% Else %>
<a href="default.asp?id=<%=R("ID")%>"><%= GetImg(Request.Querystring("id"))%></a>
<% End if
Set fs = Nothing %>
<br>
<%=R("product")%></a><br>
<font class="price"><%=R("price") * Session("moms") & " " & strCurrency %></font> <a href="default.asp?add=<%=R("ID")%>"><%= buy %></a><br>
<br>
<% R.MoveNext
Loop
End if
R.Close
C.Close %>
Ehm, ja, hänger med på vad du skriver. Dock är nu min fråga denna:
Jag kan ej lägga loopen före "else", för det är alltså....
Ska försöka förklara.
Först, skall scriptet söka igenom databasen efter nya produkter,
och därefter hämta bilderna ifrån den.
Och där använder jag delvis koden jag fick av SannyW
Men den ska ju OCKSÅ hämta informationen som står längre ner (products o.s.v.),
så det är alltså en "if" och en "else", inuti hela koden, så om jag flyttar upp LOOPEN,
så kommer inte products o.s.v. med....
<% ' *** Get the latest products from database
Set C = Server.CreateObject("ADODB.Connection")
C.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" & Server.MapPath("databejs.mdb")
Set R = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM products ORDER by ID DESC"
R.Open SQL, C, 1, 3 %>
<%=GetImg(Request.Querystring("id")) %>
<% Response.Write(R("ID")) %>
Och GetImg är fortfarande functionen jag fick av SannyW (se min föregående tråd)
Och jag får bara upp "nopic.gif" som alltså är felsökningskoden i funktionen.
Någon som vet vad som är fel?
Tack så mycket, det fungerar nu. Var jag som gjort helt fel (använde request.querystring),
vilket bara fungerade på första-sidan, ej på denna. Tack så mycket till alla er som hjälpt mig!!
264 ms totalt · 4 externa anrop · v20260731065814-full.1dc6f849