lorsque je passe une variable par l'intermédaire d'une Framset, les pages contenu dans la framset ne savent pas la traiter.
Exemples :
framsetpage?name=<%name%>
Les pages contenu dans la framset ne seront pas quelle est la valeur de name.
lorsque je passe une variable par l'intermédaire d'une Framset, les pages contenu dans la framset ne savent pas la traiter.
Exemples :
framsetpage?name=<%name%>
Les pages contenu dans la framset ne seront pas quelle est la valeur de name.
Une données passée à un formulaire par son url correspond à la méthode GET d'un formulaire, tu doit donc récupérer la valeur à l'aide de la méthode "QueryString" de l'object "Request", donc comme ceci :
Il y a aussi une petite erreur dans ton code, tu a oublier le = ou le "Response.Write" pour faire une sortie du contenu de ta variable :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <% Dim strName strName = Request.QueryString("name") %>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 framsetpage?name=<%=name%> ou framsetpage?name=<%Response.Write name%>
Justement c'est cette commande qui ne marche pas.
la framsetpage envoi :
framsetpage?name=toto
Et dans les pages il y a bien :
name=Request.QueryString("name")
Mais si je fais un :
response.write name
la variable name n'est pas connue
Tu peut mettre un exemple de ton code en entier, celui ou tu passe ta variable en paramètre ?!
voilà le code de la framsetpage :
<frameset rows="50%,50%" frameborder="YES" border="0" framespacing="0">
<frame name="topFrame" src="page1.asp?name=<%=name%>" >
<frame name="mainFrame" src="page2.asp?name=<%=name%>">
</frameset>
Voila le code de la page1.asp
appcode=Request.QueryString("name")
response.write name
Ca semble correcte, la seule explication que je vois serait que la variable "name" n'aurait pas de valeur au moment ou tu la passe en get à "page1.asp".
Tu devrait tester en forcant la valeur juste pour être sur !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6 <frameset rows="50%,50%" frameborder="YES" border="0" framespacing="0"> <frame name="topFrame" src="page1.asp?name=toto" > <frame name="mainFrame" src="page2.asp?name=toto"> </frameset>
Dans ces conditions , oui ça fonctionne, je comprend pas pourquoi la valeur de la variable se perd.
La variable "name" tu l'alimente comment et ou avant de la passer dans l'url ?
La variable est alimenté par une valeur prise dans une base de donnée. A noter que les pages fonctionnent correctement lorsqu'elles ne sont pas appelées par la framsetpage.
Oui daccord mais la variable est bien déclarée et alimentée dans le même formulaire qui contient le framsetpage ?
Non la variable est alimentée dans une page qui appelle la framsetpage, elle est juste passée en paramètre de la framsetpage afin d'être récupérer dans les pages contenus dans la framsetpage.
Salut,
Comment rediriges-tu de la page appelante vers ton frameset? Montres le lien ou le formulaire.Envoyé par mcbrett
Car pour le moment j'ai vu çamais je n'ai jamais vu un truc du genre
Code : Sélectionner tout - Visualiser dans une fenêtre à part framsetpage?name=<%=name%>
dans ton code qui te permet d'affecter une valeur à la variable name.
Code : Sélectionner tout - Visualiser dans une fenêtre à part name = request("name")
La page framsetpage est lancée comme ça :
<% session("name")=Request.Form("name") %>
<SCRIPT language="JavaScript" type="text/javascript">
window.open("framsetpage.asp?name=<%=name%>");
</SCRIPT>
Mais là ça fonctionne bien, le problème est le suivant : la valeur de la variable ne se transmet pas aux pages contenus dans la framsetpage.
<% session("name") = Request.queryString("name") %>
<html>
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<frameset rows="50%,50%" frameborder="YES" border="0" framespacing="0">
<frame name="topFrame" src="page1.asp?name=<%=name%>" >
<frame name="mainFrame" src="page2.asp?name=<%=name%>">
</frameset>noframes></noframes>
</html>
Pour info si tu transformes ton querystring en variabl session tu n'as plus besoin de transférer ta variable name de page en page.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 <frame name="topFrame" src="page1.asp?name=<%=request.querystring("name")%>" > <frame name="mainFrame" src="page2.asp?name=<%=request.querystring("name")%>">
Il suffit d'usiliser session("name") à la place de request.querystring("name") à la suite.
Maintenant il faut peut-être voir une des deux pages suivante pour voir comment tu utilises name.
ta variable n'est pas name mais session("name") puique c'est à elle que tu transmet ta valeur [/code]
Bravo soufienne, tu as trouvé la solution.
Merci à tous
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager