5568 sujets

Sémantique web et HTML

bonjour les amis,

encore un petit souci qui me donne du fil à retordre:

je dois passer une variable (var1) de ma page 1 vers ma page 2 (par l'url) , tout en dirigeant vers un signet à l'intérieur de la page 2; je pensais écrire ça sous cette forme (code ASP) :

Response.Redirect("...adresse_de_ma_page.asp?var=" & var1 & "#signet")

ou bien
Response.Redirect("...adresse_de_ma_page.asp#signet" & "?var=" & var1)


mais dans ces 2 cas, ma variable (var1) n'est pas prise en compte, je pense - reprenez moi si je me trompe - qu'on ne peut pas transmettre en même temps - par l'url - une variable et une indication de signet !

J'en arrive donc à ma question: hormis le fait de le spécifier dans l'adresse de la page, existe-t-il un moyen de diriger vers un signet dans une page, par exemple lorsque celle-ci est chargée ?

merci pour l'aide que vous pourriez m'apporter

NB: sachant que je ne peux pas utiliser non plus de variable de session !
Modifié par maurice (28 Mar 2008 - 15:49)
maurice a écrit :
je pense - reprenez moi si je me trompe - qu'on ne peut pas transmettre en même temps - par l'url - une variable et une indication de signet !

Il me semble qu'on peut le faire sans que ça pose problème. Le #ancre à la fin de l'URL (jamais au milieu) est une indication que seul le navigateur utilise, en interne, pour se positionner sur un élément donné. Le serveur ne devrait pas, quant à lui, recevoir cette information.

Le problème ne viendrait pas plutôt du script ASP?

Le problème ne viendrait-il pas du fait que tu fais une redirection? Si cette redirection se fait juste côté serveur (de l'URL Rewriting?), et que le navigateur n'a pas connaissance de l'URL machin.asp?var1=value1&var2=value2#ancre, eh bien logiquement l'ancre ne marchera pas, et il se peut que ASP considère que la valeur de "var2" est "value2#ancre" et non pas juste "value2".

Mais j'avoue ne rien connaitre à ASP et IIS, donc mes suppositions sont peut-être un peu loin de la réalité.
merci de ta réponse

efefctivement, je pense comme toi (quant à l'interprétation 'confuse' du nom de la variable);
entre temps j'ai trouvé un autre moyen de résoudre mon problème : en fait j'insere ma variable dans le signet de ma page cible, puis je récupère l'adresse URL de ma page cible avec ce petit code (rapidement trouvé avec l'ami Google) :

<%
Function CurrentURL()
     
     Dim Temp
     Temp = "http://" & Request.ServerVariables("SERVER_NAME")
     Temp = Temp & Request.ServerVariables("SCRIPT_NAME")
     
     If Request.ServerVariables("QUERY_STRING") <> "" Then
          Temp = Temp & "?" & Request.ServerVariables("QUERY_STRING")
     End If
     
     CurrentURL = Temp
     
End Function

%>


et pour finir je 'récupère' ma variable en l'extrayant de la chaine URL (instructions right$ mid$ etc...)

voilà, en attendant de trouver mieux ça va me dépanner pour l'instant Smiley langue
Modifié par maurice (28 Mar 2008 - 15:48)
on efface tout et on recommence !

en fait Florent tu était dans le vrai plus que tu ne le crois

je résume: la fonction que je viens de donner (pour récupérer l'URL de ma page) ne fonctionne pas à 100% avec ASP, justement du fait que l'indication du signet (#ancre) est ignorée par le serveur et donc on ne peut rien récupérer de ce côté là avec la solution que j'entrevoyais !

la solution était toute simple : insérer un '&' entre la déclation de la variable à transmettre et l'indication du signet, comme ceci :

Response.Redirect("...ma_page.asp?var=" & ma_variable & "[b][#red]&[/b]#" & signet)


j'ai testé, ce coup ci ça marche, et je le dis franchement : youpi Smiley lol