---
title: "Blanda in HTML"
type: "forum-thread"
url: "https://www.webforum.nu/amne/asp/140459-blanda-in-html"
topic: "ASP"
topic_url: "https://www.webforum.nu/amne/asp"
author: "SoulGod"
published: "2006-01-06T18:51:33.000Z"
updated: "2006-01-07T18:00:47.000Z"
replies: 12
views: 417
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/asp/140459-blanda-in-html"
---

# Blanda in HTML

## #1 — SoulGod, 2006-01-06T18:51Z

Jag har problem med att "blanda" ASP och HTML.
Själva dokumentet är ASP, men jag försöker göra detta.

En normal bildlänk är ju:
\<img src="products/2.jpg"\>

Men jag vill ha något liknande:
\<img src="products/\<% Request.QueryString(R("ID")) %\>.jpg"\>

Så scriptet skall alltså hämta -\> Request.QueryString(R("ID")) \<-
och sedan lägga in den istället för x i kodraden:
\<img src="products/x.jpg"\>

Får inte det att fungera. Hjälp :)

Permalänk: https://www.webforum.nu/p/140459

## #2 — cyprys, 2006-01-06T19:00Z

```
<img src="products/<%=Request.QueryString("ID")%>.jpg">
```

Däremot är någon slags felhantering att rekommendera. T.ex. genom att köra

```
<img src="products/<%=checkImg(Request.QueryString("ID"))%>.jpg">
```

där funktionen checkImg är i stil med

```
function checkImg(imgName)
if imgName exists then checkImg = imgName
else checkImg = notAvaliable
```

och notAvaliable.jpg används om inte bilden finns.

Permalänk: https://www.webforum.nu/p/1739497

## #3 — Peter S, 2006-01-06T19:00Z

```
<img src="products/<%=Request.QueryString(("ID")) %>.jpg">
```

  :)

Permalänk: https://www.webforum.nu/p/1739498

## #4 — SoulGod, 2006-01-06T19:23Z

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
----------^
```

Kan jag inte köra via include?

Permalänk: https://www.webforum.nu/p/1739515

## #5 — Peter S, 2006-01-06T19:26Z

Vad är 'exists'? Det skall vara ett 'then' allra sist på den rad det klagas på.

Permalänk: https://www.webforum.nu/p/1739518

## #6 — cyprys, 2006-01-06T19:27Z

Min kod fungerar inte nej. Se det som en psuedokod.

> där funktionen checkImg är i stil med

Med exists menar jag att du kan kolla emot en databas/filsystem, beroende på hur systemet ser ut, om bilden verkligen existerar.

Om du tycker det verkar jobbigt kan du ta den enkla vägen och ignorera felhantering och få ett rött kryss istället. ;) Men hur lärande och kul är det?

Permalänk: https://www.webforum.nu/p/1739519

## #7 — SannyW, 2006-01-07T03:13Z

Ger ett alternativ hur man kan lösa din önskan.

```
<%= 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
%>
```

Permalänk: https://www.webforum.nu/p/1739695

## #8 — SoulGod, 2006-01-07T13:56Z

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 %>
```

Permalänk: https://www.webforum.nu/p/1743156

## #9 — esrange, 2006-01-07T14:36Z

Felet ligger i att du har skrivit:

If ... Then
Do Until R.EOF
Else
Loop
End If

Du måste skriva:
If ... Then
Do Until R.EOF
Loop
Else
End If

Om det nu är så att du innan loopen vill kolla om databasen har returnerat något eller inte. Titta på din kod igen så ser du felet.

Permalänk: https://www.webforum.nu/p/1743175

## #10 — SoulGod, 2006-01-07T14:50Z

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

```
<a href="default.asp?id=<%=R("ID")%>"><%= GetImg(Request.Querystring(R("id")))%>
```

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....

Eller tänker jag helt fel nu?

Permalänk: https://www.webforum.nu/p/1743185

## #11 — SoulGod, 2006-01-07T15:37Z

Kör en annan kod nu, bara för att testa ...

```
<% 	' *** 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?

Permalänk: https://www.webforum.nu/p/1743200

## #12 — SannyW, 2006-01-07T16:05Z

Finns det något värde?

```
Request.Querystring("id")
```

Typ: default.asp?id=1

Och finns det då en fil som heter 1.gif i katalogen products.

Om jag skall tro så skall väl

```
GetImg(Request.Querystring("id"))
```

bytas mot denna.

```
GetImg(R("id"))
```

Permalänk: https://www.webforum.nu/p/1743210

## #13 — SoulGod, 2006-01-07T18:00Z

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!!

Permalänk: https://www.webforum.nu/p/1743256

---

Tråden på webben: https://www.webforum.nu/amne/asp/140459-blanda-in-html
