Avatar billede stkol Nybegynder
21. maj 2003 - 11:41 Der er 20 kommentarer og
1 løsning

Anchor i redirect med ASP syntaks

Hej

Jeg har en redirect som jeg gerne vil have til at inde holde både en "querystring" samt et anchor, men det vil browseren ikke være med til! Det jag skriver ud er følgende :

response.redirect "editor.asp?docid=" & request.querystring("docid")& "#hide"

Browseren giver mig følgende fejl :

Microsoft OLE DB Provider for SQL Server error '80040e14'

Line 1: Incorrect syntax near '#hide'.

/admin/frame/editor.asp, line 79

Hvordan kan dette problem løses??

/Stig :-)
Avatar billede stkol Nybegynder
21. maj 2003 - 11:44 #1
Koden som står i editor.asp omkring linie 79 (Linie 79 er markeret me ¤¤¤)

<%

    '####### Document info ############
    '## Create db objects and SQL   
    set dbDocEditConn = Server.CreateObject("ADODB.Connection")
    dbDocEditConn.Open Application("ConnectString")
    Set rs = Server.CreateObject("ADODB.Recordset")

    sql = "SELECT * FROM documents WHERE recordid=" & request.querystring("docid")

¤¤¤    Set rs = dbDocEditConn.Execute(sql)
   
%>
Avatar billede dk_akj Nybegynder
21. maj 2003 - 11:46 #2
Det er fordi din sql bliver noget i denne stil:
SELECT * FROM documents WHERE recordid= 4#hide

Den går ikke da 4#hide er en text og ikke et tal

//akj
Avatar billede stkol Nybegynder
21. maj 2003 - 11:49 #3
OK!! det er selvfølgelig klart, men hvordan får jeg så smækket de 2 sammen, så jeg ikke får den fejl, og både mit anchor og querystring kommer til at virke????

/Stig :-)
Avatar billede tuctoh Nybegynder
21. maj 2003 - 11:50 #4
brug:

response.redirect server.urlencode("editor.asp?docid=" & request.querystring("docid")& "#hide")
Avatar billede tuctoh Nybegynder
21. maj 2003 - 11:51 #5
ok, never mind mit reply
Avatar billede dk_akj Nybegynder
21. maj 2003 - 11:53 #6
Det du gerne vil er at redirecte til editror.asp som så henter et document fra db'en som så udskrives og derefter scrolle til #hide ??

//akj
Avatar billede stkol Nybegynder
21. maj 2003 - 12:00 #7
AKJ! Yes det er det jeg vil *S
Avatar billede oasen Nybegynder
21. maj 2003 - 12:08 #8
strQuery = Mid(Request.Querystring("docid"), 1, InStr(Request.Querystring("docid"), "#"))
sql = "SELECT * FROM documents WHERE recordid=" & strQuery
Avatar billede dk_akj Nybegynder
21. maj 2003 - 12:09 #9
Hvad med at blande lidt javascript ind i det ??

response.write "<script language=javascript>window.location.href=""#Hide""</script>

Prøv at sætte det ind i bunden af dit script.

//akj
Avatar billede stkol Nybegynder
21. maj 2003 - 12:26 #10
AKJ : Det hjælper ikke!!!
Avatar billede stkol Nybegynder
21. maj 2003 - 12:27 #11
OASEN : Hvordan vil du smide det sammen med min response.redirect ????
Avatar billede oasen Nybegynder
21. maj 2003 - 12:56 #12
Din Redirect behøver du så ikke røre ved, da den trækker ID-nummeret ud af din querystring. Da ASP som bekendt bliver udført på serveren vil dit anker stadig fungere, når siden er færdigindlæst hos klienten.
Men den skal nok nærmere hedde:

strQuery = Mid(Request.Querystring("docid"), 1, InStr(Request.Querystring("docid"), "#") - 1)
sql = "SELECT * FROM documents WHERE recordid=" & strQuery
Avatar billede oasen Nybegynder
21. maj 2003 - 13:01 #13
Dvs. hvis du redirect'er således:

response.redirect "editor.asp?docid=" & request.querystring("docid")& "#hide"

- vil du f.eks. anmode om følgende side:

editor.asp?docid=76#hide

Herefter trækker du de 76 ud af strengen som vist ovenfor og udfører din SQL-forespørgsel. Således får du fat i artikel nr 76, som du udskriver til klienten.
Avatar billede stkol Nybegynder
21. maj 2003 - 13:23 #14
Oasen : Jeg får følgende fejl :

Microsoft VBScript runtime error '800a0005'

Invalid procedure call or argument: 'Mid'

/admin/frame/editor.asp, line 77
Avatar billede oasen Nybegynder
21. maj 2003 - 13:38 #15
Prøv lige at ændre det til:

If InStr(Request.Querystring("docid"), "#") > 0 Then
  strQuery = Mid(Request.Querystring("docid"), 1, InStr(Request.Querystring("docid"), "#") - 1)
End If

- tilfælde af din querystring ikke indeholder en havelåge.
Avatar billede stkol Nybegynder
21. maj 2003 - 13:44 #16
Så smider den denne fejl

Microsoft OLE DB Provider for SQL Server error '80040e14'

Line 1: Incorrect syntax near '='.

/admin/frame/editor.asp, line 84
Avatar billede dk_akj Nybegynder
21. maj 2003 - 13:49 #17
Lav din redirect om til
response.redirect "editor.asp?docid=" & request.querystring("docid")& "&anc=#hide"

Din sql skal så være:
sql = "SELECT * FROM documents WHERE recordid=" & request.querystring("docid")

' udskriv doc

'opret javascript til scroll
response.write "<script language=javascript>window.location.href="" &request.querystring("anc")& ""</script>

//akj
Avatar billede stkol Nybegynder
21. maj 2003 - 13:59 #18
K A N O N T ! ! ! Det virker AKJ *S I skal begge have mange tak for hjælpen *S
Avatar billede dk_akj Nybegynder
21. maj 2003 - 14:02 #19
Selvtak.

//akj
Avatar billede oasen Nybegynder
21. maj 2003 - 14:23 #20
Np ;)
Avatar billede oasen Nybegynder
21. maj 2003 - 14:25 #21
Ang. fejlen (21/05-2003 13:44:45) tyder det meget på, din querystring er tom, hvorfor du derfor får en ugyldig where-clause.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester