Petite question sur les liens portant sur des frames - Programmation
Marsh Posté le 02-09-2001 à 21:09:12
Euh ... je crois qu'on s'est pas bien compris.
Disons que j'ai une page accueil.htm et une page principal.htm qui a 2 frames, "titre" et "contenu".
Je voudrais, de la page accueil.htm, envoyer vers principal.htm en choisissant la page qui sera affichée dans la frame "contenu".
[edtdd]--Message édité par Kodamas--[/edtdd]
Marsh Posté le 02-09-2001 à 21:17:33
a oki je pige mieux , je sais pas comment faire dans ce cas ( surment par javascript )
Marsh Posté le 02-09-2001 à 21:31:08
bah c le meme principe, avec target="" ds les balises <a>
sinon tu cree une seul page avec les 3 frames, ca sera plus simple que davoir une page a 2 frames, et une autre avec encore 2 frames.
si t pas sur pour la page a 3 frames dis moi et je te le fait.
Marsh Posté le 02-09-2001 à 21:45:51
par javascript, c'est pas possible car il faudrait que la page de frame puisse récupérer des arguments passé par paramètres or le javascript ne le permet pas. il faut donc envisager une solution coté serveur.
Marsh Posté le 02-09-2001 à 21:46:33
Je veux avoir la première page sans frame et envoyer vers une page avec 2 frames. Je vois pas l'intérêt de créer une page avec 3 frames.
E je pense pas pouvoir faire un lien <a href="principal.htm" <a href="exemple.htm" target="contenu"></a>>Lien</a>
Marsh Posté le 02-09-2001 à 21:47:14
gizmo a écrit a écrit : par javascript, c'est pas possible car il faudrait que la page de frame puisse récupérer des arguments passé par paramètres or le javascript ne le permet pas. il faut donc envisager une solution coté serveur. |
C'est à dire ?
J'y connais nada donc éclaire moi un peu.
Marsh Posté le 02-09-2001 à 21:50:20
bin via asp, cgi ou php ainsi tu apellera une page commune avec un paramètre (style principal.php?page=1) et en fonction de ce paramètre, il contruira la page de frame avec les pages désirées
Marsh Posté le 02-09-2001 à 22:06:21
Oula !
Bon ben bokou trop compliqué pour moa.
Je vais me débrouiller autrement; Merci
Marsh Posté le 02-09-2001 à 22:07:47
c'est pas dur, si tu acceptes le php, je te le fais demain, ca prend 15min.
Marsh Posté le 02-09-2001 à 22:19:40
gizmo a écrit a écrit : c'est pas dur, si tu acceptes le php, je te le fais demain, ca prend 15min. |
Je suis hébergé chez free donc je pense que ça passe.
Et merci.
Marsh Posté le 03-09-2001 à 00:17:56
arf javais pas compris ta question, stupide de moi
vi c possible et la seul facon que je vois c en javascript.
Par contre faudra que tu me dises comment tu decide de quel page a affiche ds les frames, si c par lien ou par hasard ou par resolution .... si on click, si on est redirige, explike plus plz
Marsh Posté le 03-09-2001 à 09:41:12
Voila, alors dans le fichier principal.php3 tu écris:
Code :
|
c'est tout. Tu peux changer tout ce que tu veux dans les paramètres des frames, la seule chose importante, c'est ce qui ce trouve entre <? et ?>
Et dans ton fichier accueil.html, tu n'a qu'a appeler ta page comme ca:
Code :
|
en remplacant nom_de_page_x.htm par la page qui devra se trouver dans la frame contenu.
[edtdd]--Message édité par gizmo--[/edtdd]
Marsh Posté le 03-09-2001 à 12:50:00
beuh........C posible en javascript...
ds ta frame tu appelles colles un truc du style
<a href="" onclick="go(tapage.htm)">tapage</a>
<script...>
var tapage="";
function go(page)
{
tapage=page;
document.parent.principal=acceuil.htm;
}
tu charges toujours la meme page ds ta frame
</script>
et sur ton acceuil.htm tu colles un truc du genre :
this.location=document.parent.menu.form.tapage
en collant les variables ds des champs hidden tu peux te demerder
a++
Marsh Posté le 03-09-2001 à 14:17:59
zul>> pas convaincu par ta méthode mais si tu trouves a le faire complètement, je m'incline.
barbarella>> cours toujours
Marsh Posté le 03-09-2001 à 23:52:54
Grand merci au passage pour vos réponses à tous, je teste ça tout de suite
Marsh Posté le 04-09-2001 à 12:44:48
Salut !
je sais pas si je vais apporter beaucoup d'eau au moulin, mais Zul a raison, c'est possible en javascript.
j'ai fait un petit exemple qui fonctionne sous Opéra 5.12 et IE.
Pour ceux que ça intéresse voici, le code
page A (accueil)
<html>
<head>
<title>envoie de parm via javascript</title>
</head>
<body>
<a href="testframe.htm?p=0|p2=txt.htm">affiche le lien dans la premiere frame</a>
<br>
<a href="testframe.htm?p=1|p2=txt.htm">affiche le lien dans la seconde frame</a>
</body>
</html>
Page B (contient deux frames)
<!-- frames -->
<script language="javascript">
function Recup()
{
var chm = window.location;
var vFrame;
var vPage;
chm = chm.toString();
vPage = chm.indexOf("p2=",0);
vPage = chm.substring(vPage+3,chm.length);
vFrame = chm.indexOf("p=",0);
vFrame = chm.substring(vFrame+2,vFrame+3);
vFrame = parseInt(vFrame);
top.frames[vFrame].location = vPage;
}
</script>
<frameset cols="50%,*" onload="Recup()">
<frame name="frame1" src="t1.htm" scrolling="auto" frameborder="0">
<frame name="frame2" src="t2.htm" scrolling="auto" frameborder="0">
</frameset>
Selon le lien sur lequel on click, il affiche bien la page txt.htm (fichier de mon exemple), dans le cadre définie par lien de la page d'accueil.
voila, voila.
Marsh Posté le 04-09-2001 à 13:28:34
joli mais alors pour faire ce que koda demande, y a moyen de simplifier.
Si je ne me trompe, les adresse seraient du style
<a href="testframe.htm?p=txt.htm">
et le code deviendrait
<!-- frames -->
<script language="javascript">
function Recup()
{
var chm = window.location;
var vPage;
chm = chm.toString();
vPage = chm.indexOf("p=",0);
vPage = chm.substring(vPage+2,chm.length);
top.frames[1].location = vPage;
}
</script>
<frameset cols="50%,*" onload="Recup()">
<frame name="frame1" src="menu.htm" scrolling="auto" frameborder="0">
<frame name="frame2" src="t2.htm" scrolling="auto" frameborder="0">
</frameset>
j'ai bon?
Marsh Posté le 04-09-2001 à 14:45:53
houais mais dans ce cas là tu ne specifie pas dans quelle frame tu veux afficher la page. hors Kodamas, si j'ai bien tout compris, il voulait aussi choisir dans quelles frames afficher la page. Hors dans ton cas c'est toujours dans la seconde.
Marsh Posté le 04-09-2001 à 14:48:59
non, non, il veut choisr quelle page afficher dans la frame 'contenu'.
Marsh Posté le 02-09-2001 à 20:13:17
Est-il possible de créer un lien sur une page A, vers une page B avec des frames en spécifiant la page à afficher dans l'une des frames ?
Merci