P Palleman Medlem sedan dec. 2000 557 inlägg Trådstart 28 nov. 2002 21:52 #1 Har kört fast med en sak och behöver hjälp innan jag blir gråhårig..
Min kod ser ut så här i nerkortad form:
[RED]'// Connect
strURL = Connect.Execute("SELECT fldURL FROM tblBanner WHERE ID = "& trim(Request.Querystring("id"))).GetString()
'// Disconnect
Response.Write ReRout(strURL)[/RED]
Funktionen ReRout
[RED]Function ReRout(strUrl)
strUrl = trim(strUrl)
ReRout = "<script language=""javascript"">window.open('"& strUrl &"');</script>"
End Function[/RED]
Jag ska alltså skicka besökaren till den sida som denne klickat på.
Det som händer när jag kör koden är att jag får ett javascript-fel, Oavslutad strängkonstant
Skriver jag ut strURL får jag fram rätt url, MEN, jag får med ett förbaskat mellanslag sist i url´en, något som javascript-anropet inte alls tycker om..
Kör jag Server.URLEncode på strURL och skriver ut det ser man att %0D kommer med sist i url´en. (carriage return)
Hur sjutton får jag bort den?
Jag har testat att trimma på alla möjliga sorters vis, dock utan resultat.. hilfe!
mikul Medlem sedan aug. 2001 3 824 inlägg Blir det så på exakt alla länkar?
/ Mikul
mikul Medlem sedan aug. 2001 3 824 inlägg DU skulle ju i så fall kunna göra nåt sånt här:
[RED]Function ReRout(strUrl)
strUrl = trim(strUrl)
ReRout = "<script language=""javascript"">window.open('"& Left(strUrl,CInt(Len(Trim(strUrl))-3) &"');</script>"
End Function[/RED]
Eller?
/ Mikul
P Palleman Medlem sedan dec. 2000 557 inlägg Svar Ja.. men detta fungerar dock utmärkt:
[red]Response.Write ReRout("http://www.webforum.nu")[/red]
mikul Medlem sedan aug. 2001 3 824 inlägg Ojj nu blev det dubbeltrimmat=)
/ Mikul
mikul Medlem sedan aug. 2001 3 824 inlägg Dum är jag!
hoppas att du förstod at du skulle ha Server.URLEncode nu också=)
[RED]Function ReRout(strUrl)
strUrl = trim(Server.URLEncode(strUrl))
ReRout = "<script language=""javascript"">window.open('"& Left(strUrl,CInt(Len(strUrl)-3)) &"');</script>"
End Function[/RED]
Så menade jag=)
Många svar blir det=)
/ Mikul
P Palleman Medlem sedan dec. 2000 557 inlägg Har testat det mesta, dock utan resultat..
Ditt förslag Mikul fungerade inte heller.
P Palleman Medlem sedan dec. 2000 557 inlägg Fick återgå till en lösning för att komma runt problemet istället för att hitta källan till problemet..
Löste det så här tills vidare:
[RED]Response.Write ReRout(Server.HTMLEncode(Left(strURL,cInt(Len(strURL))-1)))[/RED]
Skulle dock uppskatta om någon kunde förklara för mig varför problemet
endast uppkommer då jag hämtar värdet från databasen..
S solbulle Medlem sedan mars 2001 5 287 inlägg
Palleman skrev:
Svar Ja.. men detta fungerar dock utmärkt:
[red]Response.Write ReRout("http://www.webforum.nu")[/red]
Vad menar du med att det fungerar?
RED. Aha, ok I see.
S solbulle Medlem sedan mars 2001 5 287 inlägg Är det inte så att värdet kan vara fel i databasen på något sätt då?
P Palleman Medlem sedan dec. 2000 557 inlägg Värdet i databasen är korrekt, det är när det hämtas och skrivs ut som problemet uppstår..
N niko Medlem sedan juni 2002 2 599 inlägg Default rowdelimiter i GetString är Carriage Return. Det är därifrån det kommer skulle jag tro. Prova att helt enkelt ange en annan delimiter.
N niko Medlem sedan juni 2002 2 599 inlägg Om du skriver så här istället så borde din trim räcka:
strURL = Connect.Execute("SELECT fldURL FROM tblBanner WHERE ID = "& trim(Request.Querystring("id"))).GetString(, , , " ")
P Palleman Medlem sedan dec. 2000 557 inlägg
niko skrev:
Om du skriver så här istället så borde din trim räcka:
strURL = Connect.Execute("SELECT fldURL FROM tblBanner WHERE ID = "& trim(Request.Querystring("id"))).GetString(, , , " ")
Fungerade klockrent!
Det där var intressant vetande, nu vet jag ju orsaken till problemet.
Tack och bock!