bigsky Medlem sedan maj 2002 821 inlägg Frågan 1 aug. 2006 10:24 #1 Sub PageContent(ByVal strPageContent)
strPageContent = Replace(strPageContent, "[BoxFeaturedProducts]", Call BoxFeaturedProducts)
Response.Write strPageContent
End Sub
Call BoxFeaturedProducts är också en Sub.
J Josef Medlem sedan mars 2002 3 561 inlägg Jag tror det fungerar om du tar bort "Call"
bigsky Medlem sedan maj 2002 821 inlägg Då blir det Inkompatibla typer: 'BoxFeaturedProducts'.
Instämmer! Call bör du inte använda på det viset. (Eller överhuvudtaget)
Dock så verkar det konstigt att anropa Replace med en sub på det viset, eftersom en sub inte ger något retuvärde.
Vad försöker du åstadkomma?
bigsky Medlem sedan maj 2002 821 inlägg Jag loppar ut html-kod från en databas. Men asp-taggarna skrivs inte ut på sidan, endast som text i källkoden.
BoxFeaturedProducts hämtar något från databasen? Detta måste du returnera samt ändra BoxFeaturedProducts till att bli en function, typ så här:
Public Function BoxFeaturedProducts() as String ' Minns inte om det kallas public eller nåt annat i VB. Lämna det som står innan Sub orört.
dim retval as String
...
BoxFeaturedProducts = retval ' Här sätts returvärdet
End Function
J Josef Medlem sedan mars 2002 3 561 inlägg Tror inte du kan sätta returtyp i asp.
J Josef Medlem sedan mars 2002 3 561 inlägg Det tror inte jag.
Detta fungerar inte
<%
Public Function GetString() As String
Dim s As String
s = "Hello World!"
GetString = s
End Function
Response.Write(GetString())
%>
Medans
<%
Public Function GetString()
Dim s
s = "Hello World!"
GetString = s
End Function
Response.Write(GetString())
%>
... detta gör det.
bigsky Medlem sedan maj 2002 821 inlägg Så här ser det ut:
HTML-koden ligger i en databas. Koden kan man uppdatera online med hjälp av ett WYSIWYG-verktyg. Vissa färdigprogrammerade element (tex. formulär, bilder etc) i koden ska kunna placeras ut i koden med ett anrop tex. [BoxSignup].
När HTML-koden skrivs ut på webbsidan vill jag att anropet [BoxSignup] ska ersättas med det färdigprogrammerade elementet, tex. en bild eller ett formulär. Därav anropet med en replace och sub. Alla färdigprogrammerade element är subbar eller funktioner.
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Hur ser HTML-koden ut?
Förstår jag dig rätt om att du vill ersätta texten "BoxSignup" med en sub och skriva ut ASP-kod??
bigsky Medlem sedan maj 2002 821 inlägg Helt rätt men jag vill skriva ut HTML inte ASP. Det är bara vanliga formulär, bilder och tabeller som ska skrivas ut.
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Skicka HTML-koden och funktionen.
bigsky Medlem sedan maj 2002 821 inlägg Sub BoxFeaturedProducts
Response.Write "<table bgcolor=""" & strColor1 & """ border=""0"" cellpadding=""4"" cellspacing=""1"" width=""558"">"
Response.Write "<tr>"
Response.Write "<td bgcolor=""" & strColor1 & """ width=""558"" height=""20"" align=""center"" valign=""middle"" class=""headline2"" colspan=""2"">" & strTextFeaturedProducts & "</td>"
Response.Write "</tr>"
Call OpenConn()
Set rsShowFeaturedProducts = Conn.Execute("SELECT Id, Pid, Product, Description, Price, Vat, ShowDiscount, DiscountPrice, ImgSmall, Img01 FROM tblProducts WHERE Display = True AND Featured = True AND Lang = '" & Request.Cookies("lang") & "' ORDER BY Id DESC")
iLoop = 0
If Not rsShowFeaturedProducts.EOF Then
Do Until rsShowFeaturedProducts.EOF
If iLoop Mod 2 = 0 Then
Response.Write "<tr>"
End If
Set Jpeg = Server.CreateObject("Persits.Jpeg")
Jpeg.Open strFilePath1 & rsShowFeaturedProducts("Img01")
strImageWidth = Jpeg.OriginalWidth
strImageHeight = Jpeg.OriginalHeight
Set Jpeg = Nothing
Response.Write "<td bgcolor=""" & strTableColor & """ width=""279"" height=""20"" align=""left"" valign=""top"">"
Response.Write "<table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""269"">"
Response.Write "<tr>"
Response.Write "<td width=""115"" height=""20"" align=""left"" valign=""middle""><a href=""#"" onClick=""centerpopup('" & strHardLinkUrl & "/inc_productimage.asp?prod=" & rsShowFeaturedProducts("Id") & "&img=" & rsShowFeaturedProducts("Img01") & "&width=" & strImageWidth & "&height=" & strImageHeight & "&windowwidth=" & strImageWidth & "'," & strImageWidth & "," & strImageHeight + 30 & ");""><img src=""" & strHardLinkImageUrl & "/products_small/" & rsShowFeaturedProducts("ImgSmall") & """ width=""110"" height=""110"" border=""0"" alt=""" & strImgTitle & " - " & rsShowFeaturedProducts("Product") & """></a></td>"
Response.Write "<td width=""154"" height=""20"" align=""left"" valign=""top"">"
Response.Write "<table border=""0"" cellpadding=""4"" cellspacing=""0"" width=""154"">"
Response.Write "<tr>"
Response.Write "<td width=""154"" height=""20"" align=""left"" valign=""top"" colspan=""2""><a href="""" class=""productlink"">" & rsShowFeaturedProducts("Product") & "</a></td>"
Response.Write "</tr>"
Response.Write "<tr>"
Response.Write "<td width=""154"" height=""20"" align=""left"" valign=""top"" colspan=""2"">" & rsShowFeaturedProducts("Description") & "</td>"
Response.Write "</tr>"
If rsShowFeaturedProducts("ShowDiscount") = True Then
Response.Write "<tr>"
Response.Write "<td width=""154"" height=""20"" align=""left"" valign=""top"" colspan=""2"" class=""productprice"">" & strTextProductOldPrice & ""
Response.Write " <strike>"
Call BoxConvertCurrency(rsShowFeaturedProducts("Price"), rsShowFeaturedProducts("Vat"))
Response.Write "</strike>"
Response.Write "<br>" & strTextProductDiscountPrice
Response.Write " <b>"
Call BoxConvertCurrency(rsShowFeaturedProducts("DiscountPrice"), rsShowFeaturedProducts("Vat"))
Response.Write "</b>"
Response.Write "<br>" & strTextProductSave & " "
Call BoxCalculateSavings(rsShowFeaturedProducts("Price"), rsShowFeaturedProducts("DiscountPrice"), rsShowFeaturedProducts("Vat"))
Response.Write "</td>"
Response.Write "</tr>"
Else
Response.Write "<tr>"
Response.Write "<td width=""154"" height=""20"" align=""left"" valign=""top"" colspan=""2"" class=""productprice"">" & strTextProductPrice
Response.Write " <b>"
Call BoxConvertCurrency(rsShowFeaturedProducts("Price"), rsShowFeaturedProducts("Vat"))
Response.Write "</b></td>"
Response.Write "</tr>"
End If
Response.Write "<tr>"
Response.Write "<td width=""77"" height=""20"" align=""left"" valign=""top"">"
Response.Write "<table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""67"" height=""21"">"
Response.Write "<tr>"
Response.Write "<td background=""" & strHardLinkImageUrl & "/button_left.gif"" width=""9"" height=""21"" align=""center"" valign=""middle""></td>"
Response.Write "<td background=""" & strHardLinkImageUrl & "/button_middle.gif"" width=""49"" height=""21"" align=""center"" valign=""middle""><a href=""" & strHardLinkUrl & "/default.asp"" class=""buttonlink"">" & strTextProductReadMore & "</a></td>"
Response.Write "<td background=""" & strHardLinkImageUrl & "/button_right.gif"" width=""9"" height=""21"" align=""center"" valign=""middle""></td>"
Response.Write "</tr>"
Response.Write "</table></td>"
Response.Write "<td width=""77"" height=""20"" align=""left"" valign=""top"">"
Response.Write "<table border=""0"" cellpadding=""0"" cellspacing=""0"" width=""67"" height=""21"">"
Response.Write "<tr>"
Response.Write "<td background=""" & strHardLinkImageUrl & "/button_left.gif"" width=""9"" height=""21"" align=""center"" valign=""middle""></td>"
Response.Write "<td background=""" & strHardLinkImageUrl & "/button_middle.gif"" width=""49"" height=""21"" align=""center"" valign=""middle""><a href=""" & strHardLinkUrl & "/default.asp"" class=""buttonlink"">" & strTextProductBuy & "</a></td>"
Response.Write "<td background=""" & strHardLinkImageUrl & "/button_right.gif"" width=""9"" height=""21"" align=""center"" valign=""middle""></td>"
Response.Write "</tr>"
Response.Write "</table></td>"
Response.Write "</tr>"
Response.Write "</table></td>"
Response.Write "</tr>"
Response.Write "</table></td>"
iLoop = iLoop + 1
If iLoop Mod 2 = 0 Then
Response.Write "</tr>"
End If
rsShowFeaturedProducts.MoveNext
Loop
End If
rsShowFeaturedProducts.Close : Set rsShowFeaturedProducts = Nothing
Call CloseConn()
Response.Write "</td>"
Response.Write "</tr>"
Response.Write "</table>"
End Sub
bigsky Medlem sedan maj 2002 821 inlägg Det är inget fel på HTML-koden som ska skrivas ut eller själva subben. Problemet ligger i att byta ut [BoxFeaturedProducts] som kommer från databasen mot att anropa subben BoxFeaturedProducts.
bigsky Medlem sedan maj 2002 821 inlägg Enklast hade ju varit om man bara kunder spara <% Call BoxFeaturedProducts %> direkt i databasen, men då händer ju inget när man skriver ut HTML-koden från databasen.
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Du måste göra om suben till en funktion och returnera den html-koden..
bigsky Medlem sedan maj 2002 821 inlägg Men det funkade ju perfekt! Tänk att det var så enkelt... Hade för mig att jag redan provat på att ändra den till en funktion men jaja... tack.
bigsky Medlem sedan maj 2002 821 inlägg Fast riktigt så enkelt var det kanske inte. Problemet nu är att funktionen BoxFeaturedProducts skrivs ju ut oavsett om elementet [BoxFeaturedProducts] finns med i databasen eller inte.
Function BoxFeaturedProducts
Response.Write "<table bgcolor=""" & strColor1 & """ border=""0"" cellpadding=""4"" cellspacing=""1"" width=""558"">"
Response.Write "<tr>"...
Sub PageContent(ByVal strPageContent)
strPageContent = Replace(strPageContent, "[BoxFeaturedProducts]", BoxFeaturedProducts)
Response.Write strPageContent
End Sub
Y yohpops Medlem sedan feb. 2001 1 198 inlägg Du kan inte ha response.write i funktionen.
Du måste spara det du skriver ut i en variabel och returnera det..
Function BoxFeaturedProducts
Dim v_ret
v_ret = "<table bgcolor=""" & strColor1 & """ border=""0"" cellpadding=""4"" cellspacing=""1"" width=""558"">"
v_ret = v_ret & "<tr>"
BoxFeaturedProducts = v_ret
End Function