Page 1 sur 1

Cibler des liens en php

Posté : 06 juin 2006, 11:36
par Deuf
Bonjour,

je galère depuis quelques temps sur un site qui est presque terminé, il ne me reste qu'un petit problème que j'espère vous allez m'aider à résoudre.

J'ai ma page index.php dans laquelle se trouvent 2 types de liens.
Les 1ers vont aux différentes rubriques du site (le menu en gros) et chargent dans 3 frames différentes 2 fichiers .swf (un bandeau titre et un sous-menu) et un .php (des visuels), les autres sont dans chaque rubrique (contenus dans un .swf, le sous-menu), et chargent les visuels.

Quand on clic sur les liens du menu les 3 fichiers sont bien chargés chacun dans leur frame, le bandeau.swf, le sous-menu.swf et le visuel.php.

Le problème est que lorsqu'on clic sur les liens du sous-menu les 2 fichiers .swf se rechargent alors que je voudrait qu'il n'y est que le visuel en php qui change.


Voici le code pour séléctionner la rubrique selon le lien cliquer dans le menu:

Code : Tout sélectionner

<link href="css/<? if($_REQUEST['rubrique']=='') {$rubrique='accueil';} else {$rubrique=$_REQUEST['rubrique'];} echo $rubrique; ?>.css" rel="stylesheet" type="text/css">
Le code sur les liens du menu:

Code : Tout sélectionner

<td width="592" height="25" bgcolor="#B4B5AB"><table width="592" height="25" border="0" cellpadding="0" cellspacing="0"> <tr> <td width="170"><a href="index1.php?rubrique=creation" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('crea','','images/crea_on.jpg',1)" ><img src="images/crea_off.jpg" alt="" name="crea" width="170" height="25" border="0"></a></td> <td width="70"><a href="index1.php?rubrique=print" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('print','','images/print_on.jpg',1)"><img src="images/print_off.jpg" alt="" name="print" width="70" height="25" border="0"></a></td> <td width="109"><a href="index1.php?rubrique=internet" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('multimédia','','images/multi_on.jpg',1)"><img src="images/multi_off.jpg" alt="" name="multimédia" width="109" height="25" border="0"></a></td> <td width="128"><a href="index1.php?rubrique=grandformat" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('grand format','','images/gdformat_on.jpg',1)" ><img src="images/gdformat_off.jpg" alt="" name="grand format" width="128" height="25" border="0"></a></td> <td width="115"><a href="index1.php?rubrique=signaletique" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('signalétique','','images/signal_on.jpg',1)" ><img src="images/signal_off.jpg" alt="" name="signalétique" width="115" height="25" border="0"></a></td> </tr> </table></td>

Le code pour la frame sous-menu:

Code : Tout sélectionner

<td width="452" height="310" name="sousmenu" background="images/cadre_photo.jpg"><div id="sousmenu"><? if($_REQUEST['sousmenu']=='') {$sousmenu=0;} else {$sousmenu=$_REQUEST['sousmenu'];} include($rubrique.$sousmenu.'.php'); ?></div></td>

Et enfin l'actionscript des boutons flash dans le swf sous-menu :

Code : Tout sélectionner

logotype_btn.onRelease = function() { getURL("index1.php?rubrique=creation&sousmenu=0","_self"); } charte_btn.onRelease = function() { getURL("index1.php?rubrique=creation&sousmenu=1","_self"); } edition_btn.onRelease = function() { getURL("index1.php?rubrique=creation&sousmenu=2","_self"); } papeterie_btn.onRelease = function() { getURL("index1.php?rubrique=creation&sousmenu=3","_self"); }
Donc si quelqu'un peut m'aider pour que les liens du sous-menu.swf ne chargent que les visuels, il me sauverait la vie parce que là je suis vraiment coincé ](*,)

J'espère que j'ai été assez clair, c'est pas évident.

Merci d'avance.[/php]

Posté : 06 juin 2006, 11:49
par Ryle
Si j'ai bien compris, le soucis provient de tes liens flash :

Code : Tout sélectionner

logotype_btn.onRelease = function() { getURL("index1.php?rubrique=creation&sousmenu=0","_self"); }
l'attribut _self signifie qu'il va charger la page index1.php dans le cadre actuel.. il va donc nécessairement recharger la page. Il faudrait donc revoir tes liens en spécifiant le nom du cadre dans lequel tu veux changer la page à la place de "_self" et le lien de la page que tu veux ouvrir à la place dans l'url. Quelque chose du genre :

Code : Tout sélectionner

logotype_btn.onRelease = function() { getURL("laPageAAfficher.php?parametres=eventuels","leNomDuCadre"); }
Il ne modifierais alors que le cadre en question sans recharger les autres :) ('fin logiquement en tout cas, je connais pas flash du tout donc..)

Posté : 06 juin 2006, 11:59
par sadeq
:pouce: +1 Ryle, même remarque pour les liens <A href=..... il faut ajouter un TARGET="nomDuCadreCiblé" pour orienter la page appelée vers un cadre.

Un lien sans target explicite est chargé dans le conteneur actuel du lien (c'est équivalent à la référence _SELF)

Syntaxe HTML d'un lien ciblant un cadre du document :

Code : Tout sélectionner

<A HREF=" page" TARGET="cadre">texte du lien</A>

Posté : 06 juin 2006, 12:42
par Deuf
Merci pour vos réponses.

J'ai effectivement essayé en mettant le nom de la frame dans le code actionscript:

Code : Tout sélectionner

logotype_btn.onRelease = function() { getURL("creation0.php","sousmenu"); }
mais ça ouvre une nouvelle fenêtre.

J'ai fait plusieurs autres essais avec:

Code : Tout sélectionner

"_parent.sousmenu" ou "_self.sousmenu"
ça ouvre le bon fichier mais à la place de ma page ou dans une nouvelle.

Pour être plus concret voila le lien vers le site:
http://www.pakkap.fr/idkap/index1.php

Sinon je me demandait si le problème ne venait pas du code qui détermine la rubrique et s'applique ici à tous les liens. Ne serait-il pas possible de cibler que les liens du menu ?

Code : Tout sélectionner

<link href="css/<? if($_REQUEST['rubrique']=='') {$rubrique='accueil';} else {$rubrique=$_REQUEST['rubrique'];} echo $rubrique; ?>.css" rel="stylesheet" type="text/css">