Går det att koppla en redirect med ankare? <code> Jag tyckte att det fungerade, men... Om du använder Request.QueryString("id") när du bygger SQL-satsen skulle jag vilja kalla det där för en bugg i IIS/ASP. Det vil sig inte Du kan börja med att hoppas på detta: Tyvärr, det hjälper inte, samma fel. ska du inte ha ' (fnutt) runt id? Du måste sätta ankaret i samband med filnamnet, om du sätter det efter id-variabeln så räknas den in som en del av id:t. Menar du att du får samma fel I min frustation kanske jag svarade något fel. Skriv ut sql-satsen med <b>Du måste sätta ankaret i samband med filnamnet, om du sätter det efter id-variabeln så räknas den in som en del av id:t.</b> >Det andra, om du kör länken utan #svara funkar det då? Läs min kod ordentligt! Använd hmm.. mycket tjoffs på denna.. :) Det är redan föreslaget att lägga ankaret före parameterna. Men det är felaktig syntax för en URL. JAg får nu ge mig. Ja tyvärr. Jag vet att du har lagt ner tid på mig, men det lyckas inte. Jag ger inte upp. Kan du visa koden som du har den nu och felmeddelandet? Jag har löst problemet, fast på ett annat vis. Den rätta lösningen är: Mitt exempel fungerar i de browsers jag testat med: IE6.0 , NN7.0 och Opera 7.5. Wildcard kanobra.Redirect med ankare
Jag har ett ankare
<code>
<A NAME="Svara"></A>
</code>
...och en redirect...
<code>
Response.Redirect "forum_las.asp?id="&request.QueryString("id")
</code>
Går det att koppla ihop detta så att jag kommer till rätt ställe?Sv: Redirect med ankare
Response.Redirect "forum_las.asp?id=" & request.QueryString("id") & "#Svara"
</code>Sv: Redirect med ankare
<code>
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i datum i frågeuttrycket 'id = 30#Svara'.
</code>
något förslag?Sv: Redirect med ankare
Då får du väl själv plocka ut den delen av Request.QueryString som kommer före #.
<code>
Dim id, pos
id = Request.QueryString("id")
pos = InStr(id, "#")
If pos > 0 Then
id = Left(id, pos-1)
End If
</code>
Använd sedan variabel id när du bygger SQL-satsen.
Hoppas sedan att webbläsaren tolkar det efter # som namn på ett ankare.Sv: Redirect med ankare
<code>
Dim id, pos
id = Request.QueryString("id")
pos = InStr(id, "#")
If pos > 0 Then
id = Left(id, pos-1)
End If
Set rs1 = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM t_forum where ID = "&request.QueryString("id")&" OR ID = "& id &" order by id"
rs1.Open SQL, Connect, 3, 3
</code>
Fel:
<code>
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i datum i frågeuttrycket 'id = 3#Svara'.
</code>
Det är kanske att hoppas på tomten eller...?Sv: Redirect med ankare
<code>
Dim id, pos
id = Request.QueryString("id")
pos = InStr(id, "#")
If pos > 0 Then
id = Left(id, pos-1)
End If
Set rs1 = Server.CreateObject("ADODB.Recordset")
SQL = "SELECT * FROM t_forum where id = " & id & " ORDER BY id"
rs1.Open SQL, Connect, 3, 3
</code>Sv: Redirect med ankare
Jag har lappat med lite olika, men jag står och stampar.
Det kanske inte går?Sv: Redirect med ankare
typ SQL = "SELECT * FROM t_forum where ID = '"&request.QueryString("id")&"' OR ID = "& id &" order by id"
allt hänger väl på hur ID är definierad i databasen?!? är det en räknare eller en sträng eller vad? Sv: Redirect med ankare
Prova
<code>
Response.Redirect "forum_las.asp#svara?id=" & request.QueryString("id")
</code>Sv: Redirect med ankare
<code>
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel i datum i frågeuttrycket 'id = 3#Svara'.
</code>
även när du sätter ordningen som jag visade? Det låter väldigt konstigt eftersom #svara inte kommer efter 3:an i min lösning.Sv: Redirect med ankare
Så här är det:
I adressfönstret syns:
http://127.0.0.1/Hemsidor/Idrottsportalen/Idrottsportalen_filer/Forum/forum_las.asp#svara?id=3
Jag använder:
<code>
Response.Redirect "forum_las.asp#svara?id=" & request.QueryString("id")
Dim id, pos
id = Request.QueryString("id")
pos = InStr(id, "#")
If pos > 0 Then
id = Left(id, pos-1)
End If
SQL = "SELECT * FROM t_forum where ID = "&request.QueryString("id")&" order by id"
</code>
Error som jag får:
<code>
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][Drivrutin för ODBC Microsoft Access] Syntaxfel (operator saknas) i frågeuttrycket 'id ='.
/Hemsidor/Idrottsportalen/Idrottsportalen_filer/Forum/forum_las.asp, line 27
</code>
27 är rs.Open SQL, Connect, 3, 3
Jag håller med om att det är mysko, orsaken till att jag väldigt gärna vill ha detta fungerande är att den drar med sig ett felmedelande till användaren, om man har fyllt i epost felaktigt osv.Sv: Redirect med ankare
Response.Write(SQL)
så du ser vad det står, eftersom det är där felet orsakas.
Det andra, om du kör länken utan #svara funkar det då?Sv: Redirect med ankare
Helt klart en bugg i Microsofts programvaror. Ankaret skall komma efter parametrarna:
<code>
URI-reference = [ absoluteURI | relativeURI ] [ "#" fragment ]
absoluteURI = scheme ":" ( hier_part | opaque_part )
relativeURI = ( net_path | abs_path | rel_path ) [ "?" query ]
hier_part = ( net_path | abs_path ) [ "?" query ]
</code>
(ur ftp://ftp.isi.edu/in-notes/rfc2396.txt)Sv: Redirect med ankare
Jajamänsan men om möjligt så ville jag gärna ha med ankaret.Sv: Redirect med ankare
<code>
Response.Redirect "forum_las.asp#svara?id=" & request.QueryString("id")
Dim id, pos
id = Request.QueryString("id")
pos = InStr(id, "#")
If pos > 0 Then
id = Left(id, pos-1)
End If
SQL = "SELECT * FROM t_forum WHERE id = " & id & " ORDER BY id"
</code>
Tanken är att id skall innehålla den del som kommer före #, dvs talet 3. Då är det förstås variabeln id du skall använda när du bygger frågan, inte Request.QueryString("id").
Pröva ovanstående kod tillsammans med att ha ?id=3#Svara i adressen.Sv: Redirect med ankare
funkar det så här: filen.asp#svara?id=1
eller är jag ute och cyklar på autobahn nu i helgen! :pSv: Redirect med ankare
Sv: Redirect med ankare
Jag har försökt med allt vad ni har visat även det Arathon föreslog, men icke.
Tack för att ni har försökt.Sv: Redirect med ankare
Sv: Redirect med ankare
Sv: Redirect med ankare
Vad jag ville göra var att visa användaren att han/hon har gjort fel.
Nu skickar jag med en err-variabel till en error-sida, där jag talar om vad som är fel, sedan skickas man tillbaka.
Jag kan dock inte använda ankaret än, men jag tänkte så här:
I servervariables så skall det ju finnas en variabel som talar om varifrån man kommer.
Om man då gör en if-sats och kollar ifall man kommer ifrån Error.asp då skulle man väll i en metatag (som Refreshas på 1 sec)kunna lägga in ankaret.
Vad tror du? Sv: Redirect med ankare
Response.Redirect "forum_las.asp?id=" & request.QueryString("id") & "&#Svara"
Du måste ha ett &-tecken mellan id-värdet och namnet på ankaret för att markera var gränsen mellan dom går.Sv: Redirect med ankare
Du kan testa mitt exempel på:
http://www.teamplay.se/ankare.asp?id=3333&#test
Här finns ett skript som kontrollerar URLs:
http://baseclass.modulweb.dk/urlvalidator/
Vad jag har förstått så BORDE det enligt standarden se ut som:
http://www.teamplay.se/ankare.asp?id=3333#test
Det fungerar också i NN och Opera, men inte alltid i IE. När jag provar här så får jag alltid rätt värde i "id" men IE hoppar inte ner till ankaret varje gång.
Verkar vara lite buggigt i IE.Sv: Redirect med ankare
Nu fick jag som jag ville, tack för din och alla andras hjälp.
Resultatet blev så pass bra, att det till och med blev lite "proffsigt", men det skall det väll vara när man har fått hjälp på Pellesoft.