på sidan du länkar till och kör den aktuella satsen, tar du "ner" värdet från adressen där? Typ:
strWeek = request.querystring("strWeek")
alt. vid första sidan om det är ett forulär:
strWeek = request.form("strWeek")
8 svar · 206 visningar · startad av Mattias
Jag håller på med en sökfunktion i ASP där användaren efter som sökning (via dropdown-menyer) hamnar på en sida där objekt radas upp. Eftersom det ofta blir många sökträffar delar jag upp dessa i delsidor som användaren når via vanliga länkar längst ner på sidan.
Tyvärr verkar inte dessa delsidesuppdelningslänkar fungera nu när jag lagt in en funktion för att söka på vilka objekt som är lediga en viss angiven vecka. I DBn är de bokade objekten förkryssade i kryssrutor och de lediga således ej ikryssade (FALSE).
Själva sökningen går bra och de objekt som är lediga hittas och radas upp inkl länkar till alla delsidor med outhyrda objekt. När man klickar på delsideslänkarna kommer dock nedanstående felmeddelande upp:
====
Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC Microsoft Access Driver] Syntax error (missing operator) in query expression 'Rum >= 0 AND Bäddar >= 0 AND Bäddar <= 20 AND Hav <= 100000 AND Golf <= 100000 AND = False AND Kategori='OstraStranden''.
/svar.asp, line 90
====
Det skumma är att strängen för vilken vecka användaren angivit i sin sökning inte finns med. Dvs där det står AND = False AND i slutet av ovanstående felmeddelande. Det fungerade ju att söka på en viss vecka och få upp träffar, så SQL-satsen för ju fungera, tycker man. Nedan finns utdraget ur den SQL-kod som åsyftas i felmeddelandet.
====
Sql = "SELECT * FROM TblStuginfo_1 WHERE Rum >= "&rum&" AND Bäddar >= "&mibaddar&" AND Bäddar <= "&mabaddar&" AND Hav <= "&ahav&" AND Golf <= "&golf&" AND "&strWeek&" = False AND Kategori='"&omrade&"' ORDER BY Nummer"
====
Koden som innefattar angiven vecka är alltså: "&strWeek&" = False. Det är alltså i variabeln "strWeek" som aktuell vecka (kolumn i DBn) finns angiven. Ett utdrag av koden som delar upp objekten i delsideslänkar ser ut så här:
====
ref="<a href='" & scriptname & "?rum="&rum&"&mibaddar="&mibaddar&"&mabaddar="&mabaddar&"&ahav="&ahav&"&golf="&golf&"&omrade="&omrade&"&strWeek="&False&"&whichpage=" & counter
ref=ref & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a>"
====
Det som jag undrar över är således varför det inte går att gå till delsidorna via länkarna efter en sökning när det fungerar att söka och få upp träffar via SQL-koden?
Tacksam för hjälp!
på sidan du länkar till och kör den aktuella satsen, tar du "ner" värdet från adressen där? Typ:
strWeek = request.querystring("strWeek")
alt. vid första sidan om det är ett forulär:
strWeek = request.form("strWeek")
Japp, jag plockar ner värdet via strWeek=request.form("drpVecka") som ligger längst upp på sidan.
Hm, jag kanske missuppfattar något, men i din länk:
ref="<a href='" & scriptname & "?rum="&rum&"&mibaddar="&mibaddar&"&mabaddar="&mabaddar&"&ahav="&ahav&"&golf="&golf&"&omrade="&omrade&"&strWeek="&False&"&whichpage=" & counter
ref=ref & "&pagesize=" & mypagesize & "'>" & pad & counter & "</a>"
Heter ju variabeln strWeek, så på den sida du länkar till, och kör en ny databasförfrågning måste du väl köra:
strWeek = request.querystring("strWeek")
Men som sagt, jag kanske missar något???
Nja, grejen är ju att själva delsideslänkningen (ref-satsen) fungerade bra innan jag lade in koden för sökning av vecka, dvs &"&strWeek="&False i ref-satsen. Ref-satsen länkar för övrigt till "samma" sida, bara att de uppradade objekten byts ut till andra objekt som följer samma sökkriterie. Men det kan också vara jag som missuppfattar dig och har gjort fel eftersom jag inte är så bra på ASP.
Hur tar du "ner" övriga variabler från adressen då?
tex: mibaddar, ahav mfl?
Btw. har du något värde i länken när den är utskriven på sidan du har länken på? mao hur ser adressen till sidan ut i webläsarfönstert/adressfältet?
Ja, det gör jag. Annars hade ju inte sökningen fungerat alls i och med att de krävs för sortering i SQL-satsen.
En glad nyhet är att jag nu kan ta mig vidare via delsideslänkningen utan att mötas av felmeddelandet. En dålig nyhet är dock att veckoangivelsen inte "förs vidare" till delsidorna. Vet inte om det beror på att det är kryssrutor i DBn och att jag hanterar dem fel, eller vad som är problemet. Det var länge sedan jag trixade med koden till delsideslänkningen, så jag har inte full koll på den iheller. När jag håller muspekaren över en delsideslänk så ser jag iaf i statusrutan i IE att &strWeek=False& skickas vidare tillsammans med övringa kriterier som angavs vid sökningen, men ändå tas inte denna i beaktning vid uppradning ab objekt på delsidan man klickar på.
Nu såg jag nyss ett fel i min kod. Felet rör att variabeln strWeek håller i namnet på vecko-KOLUMNEN i DB, dvs v23-v35 och inte värdet under kolumnen som i övriga av användaren angivna kriterier. Jag ska mixtra testa runt lite till med koden, återkommer om/när jag märker att jag inte kommer nån vart.
Och nu verkar jag ha fixat felet genom att byta plats på "False" och "strWeek" i SQL-satsen! :)