Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1652 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une image différente à chaque clic

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Afficher une image différente à chaque clic

n°1884925
berilia
Posté le 15-05-2009 à 12:25:14  profilanswer
 

Bonjour,

 

J'ai un petit problème que je n'arrive pas à gérer, je préviens, je m'estime débutante.
(je ne suis pas sûre d'être dans la bonne sous-catégorie)

 

J'ai créé un menu "en accordéon" (liste + fonction javascript showhide(id)) et je voudrais que les utilisateurs cliquent sur une image pour voir/masquer les sous-menus, et que cette image change à chaque fois (une image "+" pour dérouler, une image "-" pour masquer).

 

J'ai tout d'abord essayer avec une fonction javascript, mais si j'ai bien compris, ça ne marchera jamais puisque j'appelle du php... je crois...
Quoi qu'il en soit, je n'arrive pas à appeller la fonction javascript affimage.

 

Voici mon script showhide :

Code :
  1. <script type="text/javascript">
  2.   function showhide(id) {
  3.    var elmt = document.getElementById(id);
  4.    if (elmt) {
  5.     if(elmt.style.display=='block'){
  6.      elmt.style.display='none';
  7.     }
  8.     else{
  9.      elmt.style.display='block';
  10.     }
  11.    }
  12.   }
  13.  </script>


Mon script affimage :

Code :
  1. <script type="text/javascript"><!--
  2.   function affimage(id) {
  3.    var elmt = document.getElementById(id);
  4.    var chaine ='';
  5.    if elmt.style.display='block' {
  6.     chaine = '<img src="imagesdeco/bouton-suivant.gif">';
  7.    } else {
  8.     chaine = '<img src="imagesdeco/boutsuit.gif">';
  9.    }
  10.    return chaine;
  11.   }
  12.  --></script>


Et la ligne ou j'appelle tout ça :

Code :
  1. <li><span><?php echo $catlien; ?><span onClick="javascript:showhide('<?php echo $i; ?>');">
  2. javascript:affimage($i)
  3. </span></span>
 


J'aurai voulu faire ce genre de chose, mais quelle condition dois-je utiliser??

Code :
  1. <li><span><?php echo $catlien; ?><span onClick="javascript:showhide('<?php echo $i; ?>');">
  2. <?php if ... afficher image1 else afficher image2 ?>
  3. </span></span>

 

J'ai beaucoup détaillé car je ne sais pas si c'est une bonne solution, si non, donnez moi d'autres pistes svp!


Message édité par berilia le 15-05-2009 à 12:28:18
mood
Publicité
Posté le 15-05-2009 à 12:25:14  profilanswer
 

n°1885075
NewsletTux
&lt;Insérez ici votre vie /&gt;
Posté le 15-05-2009 à 20:19:45  profilanswer
 

si tu fais ça en PHP, ça sera généré puis ça sera statique (ou alors faudra un rechargement de page à chaque fois, puisque le php est côté serveur. Auquel cas ton javascript ne servira à rien.
 
si tu le fais en JS, tu affiches "normalement" une première image à laquelle tu attribues un id="mon_image" et sur tes boutons, tu appelles ta fonction javascript en passant 'mon_image" en paramètre.


---------------
NewsletTux - outil de mailing list en PHP MySQL
n°1885542
berilia
Posté le 18-05-2009 à 09:20:12  profilanswer
 

En clair, il ne faut pas que je le fasse en PHP.
 
Pour le javascript, le problème, c'est que mon bouton sera l'image...
Je fais ça :
<img src="imagesdeco/boutonplus.gif" id="imagesdeco/boutonplus.gif">
?
 
Mais comment j'appelle la fonction javascript?
 
Je suis un peu paumée, là...

n°1888497
berilia
Posté le 27-05-2009 à 12:50:25  profilanswer
 

Bonjour,
C'est encore moi, j'y arrive presque...
 
mon script :

Code :
  1. <script type="text/javascript">
  2.   function change(id){
  3.    var elmt = document.getElementById(id);
  4.    if (elmt.src == "imagesdeco/bouton_plus.gif";)
  5.     elmt.src = "imagesdeco/bouton_moins.gif";
  6.    else
  7.     elmt.src = "imagesdeco/bouton_plus.gif";
  8.   }
  9.  </script>


 
l'appel du script :

Code :
  1. <img onClick="javascript:change('<?php echo $imagei; ?>');" src="imagesdeco/bouton_plus.gif">


 
Il ne se passe rien, et je ne comprends pas pourquoi...
Quelqu'un peut m'aider?

n°1889012
jocastt
Posté le 28-05-2009 à 14:52:17  profilanswer
 

berilia a écrit :

Code :
  1. <img onClick="javascript:change('<?php echo $imagei; ?>');" src="imagesdeco/bouton_plus.gif">



Du coup ton image n'a plus d'id ? :pt1cable:  
 
Je vois pas bien l'interet de mettre un id de cette forme la, mais pour respecter ton boulot à fond, teste ca :

Code :
  1. <img id="<?php echo $imagei; ?>" onClick="javascript:change('<?php echo $imagei; ?>');" src="imagesdeco/bouton_plus.gif">


 
Pour développer le javascript, j'aime bien utiliser firebug sous firefox. C'est un module de débug assez sympa.
Ca peut sortir de quelques galères. :p  
 
Courage. :hello:
 
PS : fait gaffe je crois que faire des comparaisons de valeur de .src n'est pas très fiable.
Rajoute un autre attribut à ton image ca sera plus stable.
Chez moi :

Code :
  1. <script type="text/javascript">
  2. function change(id){
  3. var elmt = document.getElementById(id);
  4. if (elmt.title == "activer" ){
  5.  elmt.title = "desactiver";
  6.  elmt.src = "img/fleche_gris.gif";
  7. }else{
  8.  elmt.title = "activer";
  9.  elmt.src = "img/fleche_bleu.gif";
  10. }
  11. }
  12. </script>


+

Code :
  1. <img title="activer" src="img/fleche_gris.gif" id="1" onclick="javascript:change('1')" />


alterne bien les 2 images.


Message édité par jocastt le 28-05-2009 à 15:12:18
n°1889424
berilia
Posté le 29-05-2009 à 13:42:16  profilanswer
 

Bonjour,
 
ça pose un problème qu'une image n'ai pas d'id?
EDIT : bien sur que ça pose un problème!! Quelle question idiote!!
 
Comme je suis dans une boucle, je ne peux pas choisir un nom d'id fixe. Du coup, je rajoute un caractère à chaque tour de boucle à $imagei... C'est pas super propre, mais ça a le mérite de fonctionner...
 
J'ai réussi à régler le problème toute seule hier (je n'avais pas vu ton message) :
EDIT (encore^^) : Je crois qu'en fait le problème n'était pas réglé!

Code :
  1. <script type="text/javascript">
  2.   function change(id){
  3.    var elmt = document.getElementById(id);
  4.    if (elmt.src == "imagesdeco/bouton_plus.gif";)
  5.     elmt.src = "imagesdeco/bouton_moins.gif";
  6.    else
  7.     elmt.src = "imagesdeco/bouton_plus.gif";
  8.   }
  9.  </script>
  10. <img onClick="javascript:change('<?php echo $imagei; ?>');" src="imagesdeco/bouton_plus.gif">


 
Merci pour firebug et pour le conseil de test sur title et pas sur src, je ne savais pas.


Message édité par berilia le 29-05-2009 à 13:56:28

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Afficher une image différente à chaque clic

 

Sujets relatifs
image et .jrxmlPas de traitement d'image avec image_filter();
[VBA] : problème d'affichage (Image.Visible = False ou true)[JAVA] Définir une image de fond pour un JPanel
Décomposer une image en plusieurs matrices de 8*8Afficher le resultat d'une requête SQL (VBA access)
Afficher le nom des éléments d'un tableauécrire sur une image
Durée de vie session PHP et imageafficher un suraffichage transparent
Plus de sujets relatifs à : Afficher une image différente à chaque clic


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR