[RESOLU] Bouton poussoir avec image

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : [RESOLU] Bouton poussoir avec image

Re: Bouton poussoir avec image

par Lyssorus » 13 mai 2013, 17:40

Oui pour ce qui est des boutons je pense que le problème est résolut.

Encore une victoire de canard ! :D

Re: Bouton poussoir avec image

par ghost5922 » 13 mai 2013, 15:05

Bonjour,

oui cela fonctionne car la fonction et charge en même temps mais si par la suite tu as besoin de cette fonction elle ne sera pas charge or si tu l'as mets en dehors tu peux réutilisé cette fonction ailleurs ;)

ps : si tous fonctionne comme tu le souhaite peux tu mettre ton sujet en résolut si c'est le cas bien sur ;)

Re: Bouton poussoir avec image

par Lyssorus » 13 mai 2013, 14:45

Ok merci bien.

C'est vrai que c'est plus joli quand tout est à sa place.

Mais ça fonctionne aussi comme je l'avais mis :p

Re: Bouton poussoir avec image

par ghost5922 » 13 mai 2013, 12:29

Bonjour,

vous tu je me mélange un peu les pinceaux ^^


sinon la fonction faut pas la mettre dans l’événement
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Ici on appelle jquery depuis google -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<title>Page de test</title>
<script type="text/javascript">

$(document).ready(function () {


        // ici on creer une fonction on lui passe un paramettre un id et un statut
        function sendPhp(mot,valeur){
          $.ajax({
                  type: "POST",//je dis a ajax d'envoiyer les donnees en post
                  data: {mot : mot,valeur : valeur},  //ici j'envoi les variable statut et id a fichier.php
                  url: "Commande1.php",//le fichier php
                  success:function(data){
                                  //ici tu peux ajouter une image ou text pour dire que cela c'est bien passe
                  }
          });
        }

                        $(".gaucheMat").mouseup(function(){
                                sendPhp('1','00');
                        }).mousedown(function(){
                                sendPhp('1','10');
                        });

                        $(".droiteMat").mouseup(function(){
                                sendPhp('1','00');
                        }).mousedown(function(){
                                sendPhp('1','01');
                        });
                        
                        $(".AU").mousedown(function(){
                                sendPhp('2','00');
                        });
                        
                        $(".gaucheTete").mouseup(function(){
                                sendPhp('3','00');
                        }).mousedown(function(){
                                sendPhp('3','10');
                        });
                        
                        $(".droiteTete").mouseup(function(){
                                sendPhp('3','00');
                        }).mousedown(function(){
                                sendPhp('3','01');
                        });
                        
                        $(".rotationGauche").mouseup(function(){
                                sendPhp('4','00');
                        }).mousedown(function(){
                                sendPhp('4','10');
                        });
                        
                        $(".plusoumoins").mouseup(function(){
                                swtichImg($(this));//on appelle la fonction et on lui donne en paramètre l'objet
                                     
                        });                     
                        
                        $(".rotationDroite").mouseup(function(){
                                sendPhp('4','00');
                        }).mousedown(function(){
                                sendPhp('4','01');
                        });
                        
                        $(".AUrelache").mousedown(function(){
                                sendPhp('2','11');
                        });
						
						 function swtichImg(images){
								var src=images.attr('src');//on récupéré la valeur src de l'image actuelle
								if(src=='switch+.png'){//si le src vos plus.png alors on initialise la variable img a moin.png
										var img='switch-.png';
										sendPhp('5','10');
								}
								else{//sinon elle vos plus.png
										var img='switch+.png';
										sendPhp('5','01');                    
							   }
							   images.attr("src", img);//on modifie le src par la nouvelle valeur
						} 
 
});

</script>
</head>

<body>
<!--
ici je mets une image je mets une class car plus facile pour ecouter les evenements si il en a plusieurs
et je mets un id qui n'ai pas top car un id ne peu pas commence par un numerique puis ne peu pas etre un doublons mais bon ici je c'est sur element jouer

-->
<img src="1.png" id="1" class="gaucheMat" style="float:left; margin:0;"/>
<img src="2.png" id="1" class="droiteMat" style="float:left; margin:0;"/>
<img src="3.png" id="1" class="AU" style="float:left; margin:0;"/>
<img src="4.png" id="1" class="gaucheTete" style="float:left; margin:0;"/>
<img src="5.png" id="1" class="droiteTete"/><br>
<img src="6.png" id="1" class="rotationGauche" style="float:left; margin:0;"/>
<img src="switch+.png" id="1" class="plusoumoins" style="float:left; margin:0;"/>
<img src="9.png" id="1" class="rotationDroite" style="float:left; margin:0;"/>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<img src="AUrelache.jpg" id="1" class="AUrelache" align="center"/>

</body>
</html>
 

Re: Bouton poussoir avec image

par Lyssorus » 13 mai 2013, 12:23

Ahh zut, je pensais avoir compris !! Roo flut de zut :D

" votre code " ? On se vouvoies maintenant :(
Bah comme vous voulez :)

Alors le code complet :
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<!-- Ici on appelle jquery depuis google -->
<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
<title>Page de test</title>
<script type="text/javascript">

$(document).ready(function () {


        // ici on creer une fonction on lui passe un paramettre un id et un statut
        function sendPhp(mot,valeur){
          $.ajax({
                  type: "POST",//je dis a ajax d'envoiyer les donnees en post
                  data: {mot : mot,valeur : valeur},  //ici j'envoi les variable statut et id a fichier.php
                  url: "Commande1.php",//le fichier php
                  success:function(data){
                                  //ici tu peux ajouter une image ou text pour dire que cela c'est bien passe
                  }
          });
        }

			$(".gaucheMat").mouseup(function(){
				sendPhp('1','00');
			}).mousedown(function(){
				sendPhp('1','10');
			});

			$(".droiteMat").mouseup(function(){
				sendPhp('1','00');
			}).mousedown(function(){
				sendPhp('1','01');
			});
			
			$(".AU").mousedown(function(){
				sendPhp('2','00');
			});
			
			$(".gaucheTete").mouseup(function(){
				sendPhp('3','00');
			}).mousedown(function(){
				sendPhp('3','10');
			});
			
			$(".droiteTete").mouseup(function(){
				sendPhp('3','00');
			}).mousedown(function(){
				sendPhp('3','01');
			});
			
			$(".rotationGauche").mouseup(function(){
				sendPhp('4','00');
			}).mousedown(function(){
				sendPhp('4','10');
			});
			
			$(".plusoumoins").mouseup(function(){
                                swtichImg($(this));//on appelle la fonction et on lui donne en paramètre l'objet
        	
       
        	                function swtichImg(images){
                                        var src=images.attr('src');//on récupéré la valeur src de l'image actuelle
                                        if(src=='switch+.png'){//si le src vos plus.png alors on initialise la variable img a moin.png
                                                var img='switch-.png';
						sendPhp('5','10');
                                        }
                                        else{//sinon elle vos plus.png
                                                var img='switch+.png';
						sendPhp('5','01');                    
                                       }
                                       images.attr("src", img);//on modifie le src par la nouvelle valeur
        	                }                                      
			});			
			
			$(".rotationDroite").mouseup(function(){
				sendPhp('4','00');
			}).mousedown(function(){
				sendPhp('4','01');
			});
			
			$(".AUrelache").mousedown(function(){
				sendPhp('2','11');
			});
 
});

</script>
</head>
<? 
//$src = '+';
//$classe = 'plus';
?>
<body>
<!--
ici je mets une image je mets une class car plus facile pour ecouter les evenements si il en a plusieurs
et je mets un id qui n'ai pas top car un id ne peu pas commence par un numerique puis ne peu pas etre un doublons mais bon ici je c'est sur element jouer

-->
<img src="1.png" id="1" class="gaucheMat" style="float:left; margin:0;"/>
<img src="2.png" id="1" class="droiteMat" style="float:left; margin:0;"/>
<img src="3.png" id="1" class="AU" style="float:left; margin:0;"/>
<img src="4.png" id="1" class="gaucheTete" style="float:left; margin:0;"/>
<img src="5.png" id="1" class="droiteTete"/><br>
<img src="6.png" id="1" class="rotationGauche" style="float:left; margin:0;"/>
<img src="switch+.png" id="1" class="plusoumoins" style="float:left; margin:0;"/>
<img src="9.png" id="1" class="rotationDroite" style="float:left; margin:0;"/>
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
<img src="AUrelache.jpg" id="1" class="AUrelache" align="center"/>

</body>
</html>
Et encore une fois, merci pour ce temps passé à me conseiller et m'aider à trouver des solutions... C'est vraiment sympa :)

Re: Bouton poussoir avec image

par ghost5922 » 13 mai 2013, 12:07

Bonjour,

Si j'ai bien compris dès lors que l'on relâche le bouton de la sourie sur un objet de la classe plusoumoin on appel la fonction switchImg et on lui passe un paramètre qui doit donc être "plusoumoin" je suppose.

non on donne a la fonction le paramétré l'objet du click postez votre code complet que je puise voir :)

Re: Bouton poussoir avec image

par Lyssorus » 13 mai 2013, 11:51

Je n'avais rien qui fonctionnais mais en m'étant ce que j'avais compris dans se message, j'ai résolu mon problème.

J'ai donc ajouté mes sendPhp pour que ça communique avec la BDD et ça roule.

Mon erreur c'est que j'avais laisser le src="'.src.'" alors que comme c'est tout l'attribut qui change on y touche pas ^^'.

Merci beaucoup :)

La suite est le message que j'étais en train d'écrire.

"Hum, j'ai encore du faire une boulette.

Si j'ai bien compris dès lors que l'on relâche le bouton de la sourie sur un objet de la classe plusoumoin on appel la fonction switchImg et on lui passe un paramètre qui doit donc être "plusoumoin" je suppose.

Ensuite la fonction switchImg, elle récupère l'attribut src de l'objet de la classe "plusoumoin" puis si cet attribut est égale à "plus.png" elle stock "moin.png" dans img (pareille pour le else).

Enfin images.attr remplace l'attribut src de l'objet de classe "plusoumoin" par ce qui est contenu dans img.

Ce qui devrait changer l'image affichée.

J'ai tout bien compris ?

Alors si j'ai bien compris, vu que ça fonctionne pas j'ai du faire une boulette :p."

Re: Bouton poussoir avec image

par ghost5922 » 13 mai 2013, 10:15

Bonjour,

voila une fonction switchImg

si l'image est plus.png alors on change l'image en moin.png ou inversement



[javascript]
<script type="text/javascript">
$(document).ready(function () {
$(".plusoumoin").mouseup(function(){
switchImg($(this));//on appelle la fonction et on lui donne en paramètre l'objet
})

function switchImg(images){
var src=images.attr('src');//on récupéré la valeur src de l'image actuelle
if(src=='plus.png'){//si le src vos plus.png alors on initialise la variable img a moin.png
var img='moin.png';
}
else{//sinon elle vos plus.png
var img='plus.png';
}
images.attr("src", img);//on modifie le src par la nouvelle valeur
}
});

</script>
[/javascript]

voila pour le moment j'ai mi la class plusoumoin et l'image c'est plus.png ou moin.png

Re: Bouton poussoir avec image

par Lyssorus » 13 mai 2013, 09:11

Bonjour,

J'espère que vous avez tous passé un bon "week-end" (pour ceux qui ont fait le pont)

Me voici donc de retour pour vous embêter un peu :)

Alors voilà, pour l'instant ça fonctionne en cachant une image, mais, au départ comme aucune des deux n'est encore caché, j'ai les deux images l'une à coté de l'autre. Après un clic sur une, ça revient dans l'ordre et c'est beau :).

J'aurais bien voulu tester ta solution 1, où tu parle de modifier la source de l'image, j'ai essayé de faire :
$(".moins").mouseup(function(){
				sendPhp('5','01');
				$src = 'switch+.png';
                                $classe = 'plus';
				//$(".moins").hide();
				//$(".plus").show();
			})
$(".plus").mouseup(function(){
				sendPhp('5','10');
				$src = 'switch-.png';
                                $classe = 'moins';
				//$(".plus").hide();
				//$(".moins").show();
			})


<body>
<?
echo '<img src="'.$src.'" id="1" class="'.$classe.'" style="float:left; margin:0;"/>';
...
Mais cela ne fonctionne pas, au début plus de switch du tout, j'ai donc forcé $src = + et $classe = plus mais le bouton semble ne plus fonctionner.

Je pense que je n'ai pas très bien compris comment modifier directement le src de l'image ^^'.

De plus, je viens de penser que dans l'idéal, il faudrait que se soit la BDD (qui elle sera relié directement à l'automate) qui décide de la position du bouton, histoire qu'au démarrage, l'état du bouton virtuel corresponde à l'état physique de l'automate. :)

Donc je sais comment lire la BDD mais après comment je fait pour que la valeur me change l'image ? Là je ne vois pas :/

Re: Bouton poussoir avec image

par ghost5922 » 07 mai 2013, 17:14

alors deux solution

sois tu modifie directement le src de l'image (tu recupere l'attribut src si elle revient a l'image 1 tu modifie par la deux et inversement)

ou alors tu affiche ou cache l'image pour les alignes il faut jouer avec margin-left:-tailledeton image;

Re: Bouton poussoir avec image

par Lyssorus » 07 mai 2013, 16:47

Huuummm, ce n'est pas vraiment ça.

En fait celle les images 1 et 2 c'est un "joystick" qui fait droite/gauche, donc ça je m'en fiche.

Mais par exemple le bouton - < +, c'est un switch à deux positions stables, donc tu le tourne à gauche, clic tu es sur - "\" et tu le tourne à droite, clic tu es sur + "/"
J'aimerais mettre mes deux images et quand tu clique dessus qu'il passe d'une position à l'autre.
Le coup d'en cacher une n'est pas idiot du tout :p

Bon comme tu le disais, Jquery est génial :)

J'ai donc trouvé ça $(".target").hide();

Donc pas de soucis pour le mettre en place ça fonctionne, par contre maintenant il va me falloir superposer deux images pour pas que ça me casse tout :/ comment qu'on peut bien réussir à faire ça ? :p

Re: Bouton poussoir avec image

par ghost5922 » 07 mai 2013, 16:41

tu veux cacher une image et l'affiche quand on clique sur une autre image ?

exemple on clique sur l'image gauche tu veux cache cette image et faire apparaître l'image droite ?

Re: Bouton poussoir avec image

par Lyssorus » 07 mai 2013, 16:39

Bon aller je reviens (et oui déjà :p)

Parce que maintenant j'aimerais que mes boutons change de position à l'image donc j'ai deux images, bouton à droite, bouton à gauche, et j'aimerais que ça switch quand j'appuie dessus.

Il doit être possible de mettre une variable dans le script, à 0 ou à 1 pour avec un if afficher l'une ou l'autre des images non ?

Re: Bouton poussoir avec image

par Lyssorus » 07 mai 2013, 15:51

Mais quel mauvais....
C'est bon j'ai trouvé, c'est mon image qui a un blanc... J'avais pourtant fait attention bref, c'est bon ;)

Pour le moment lol.

Merci beaucoup !!!! :)

Re: Bouton poussoir avec image

par Lyssorus » 07 mai 2013, 15:38

Alors le div je veux bien je faire, enfin j'aimerais bien faire au plus simple :p

Donc si le div peut me sauver lol je prend.

Bon par contre j'ai essayé ça n'a pas très bien fonctionné :/ J'ai du encore faire un truc de travers ^^'.

Par contre avec ça :
<img src="1.png" id="1" class="gaucheMat" style="float:left; margin:0;"/>
<img src="2.png" id="1" class="droiteMat" style="float:left; margin:0;"/>
<img src="3.png" id="1" class="AU" style="float:left; margin:0;"/>
<img src="4.png" id="1" class="gaucheTete" style="float:left; margin:0;"/>
<img src="5.png" id="1" class="droiteTete"/><br>
<img src="6.png" id="1" class="rotationGauche" style="float:left; margin:0;"/>
<img src="7.png" id="1" class="moins" style="float:left; margin:0;"/>
<img src="8.png" id="1" class="plus" style="float:left; margin:0;"/>
<img src="9.png" id="1" class="rotationDroite" style="float:left; margin:0;"/>
J'arrive à avoir ça qui est pas trop mal, plus qu'un petit soucis :