[RESOLU] Validation par deux boutons chronometrés

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] Validation par deux boutons chronometrés

Re: Validation par deux boutons chronometrés

par Lyssorus » 30 mai 2013, 10:21

Bon mon code fonctionne mais il n'est surement pas propre encore une fois lol :p

[javascript]
function RAZ(){

dcy = 0;
dcy1 = 0;
dcy2 = 0;

}

function validation(){
var dcy = dcy1 + dcy2;
if(dcy == 5){
sendPhp('4','10');
setTimeout(sendPhp,5000,'4','00');
}
if(dcy > 5 || dcy == 4){
RAZ();
}
}

$(".DCY1").mouseup(function(){
dcy1 += 2;
validation();
}).mouseup(function(){

setTimeout(RAZ,3000);

});

$(".DCY2").mouseup(function(){
dcy2 += 3;
validation();
}).mouseup(function(){
setTimeout(RAZ,3000);

});

[/javascript]


Tu sais ce qui me bloque en fait depuis hier aprém ? D'ailleurs je vais peut être t'apprendre un truc lol.

Il ne faut surtout pas mettre setTimeout(fonction(),temps) !!! Il faut mettre setTimeout(fonction,temps).

C'est les () qui me bloque tout depuis hier aprèm !!!! (Cf : ici)

Je vais tester ton code qui me parait plus propre et je te dis quoi :D


Édit :

Bon je viens de tester ton code :)

J'ai donc viré les () des Timeout et ça passe :) et c'est vrai que c'est plus propre je trouve ;)

Voici ce que ça donne :

[javascript]
function removeclass(){
$("#action1").removeClass('activer');
$("#action2").removeClass('activer');
}

$("#action1").click(function() {
$("#action1").addClass("activer");
setTimeout(removeclass,3000);
if($("#action2").hasClass("activer")==true){
sendPhp('4','11');
setTimeout(sendPhp,5000,'4','00');
}

});

$("#action2").click(function() {
$("#action2").addClass("activer");
setTimeout(removeclass,3000);
if($("#action1").hasClass("activer")==true){
sendPhp('4','11');
setTimeout(sendPhp,5000,'4','00');
}
});
[/javascript]


En tout cas merci bien, et comme ça faisait longtemps :p

Encore une victoire de Canard !!!! lol

Re: Validation par deux boutons chronometrés

par ghost5922 » 30 mai 2013, 10:03

Bonjour,

tu creer une

[javascript]fonction removeclass(){
$("#action1").removeClass('activer');
$("#action2").removeClass('activer');
}[/javascript]

puis avec ton setTimeout tu l'appelle

[javascript]
setTimeout(removeclass(),3000);
[/javascript]

tu le mets lors de l'action de sur le bouton :)

Re: Validation par deux boutons chronometrés

par Lyssorus » 30 mai 2013, 08:22

Bonjour,

Merci ben pour le code je vais essayer ça.

Mais avant, petite question...

Que se passe t-il dans se code ?

[javascript]
$(".DCY2").mouseup(function(){
//sendPhp('4','42');
var dcy = dcy+2;
validation();
setTimeout(RAZ(),3000);
});
[/javascript]

On va à la fonction validation() et on ne passe pas par setTimeout non ?

Et ici ?

[javascript]
function validation(){

if(dcy == '3'){
sendPhp('4','10');
setTimeout(sendPhp('4','00'),5000);
}
if(dcy < '3' || dcy == '2'){
RAZ();
}


}
[/javascript]

Comment faire si je veux que mon sendPhp et mon Timeout fonctionne ? :/


Édit : J'ai testé ton code, effectivement ça fonctionne :) mais comment ajouter le compteur qui fait qu'il y a un temps impartie pour déterminer que l'action est bien volontaire ?

Re: Validation par deux boutons chronometrés

par ghost5922 » 29 mai 2013, 17:53

Re,

en effet j'ai mal compris

voila

[javascript]
$("#action1").click(function() {
$("#action1").addClass("activer");
if($("#action2").hasClass("activer")==true){
alert("ok 1");
$("#action1").removeClass('activer');
$("#action2").removeClass('activer');
}

});
$("#action2").click(function() {
$("#action2").addClass("activer");
if($("#action1").hasClass("activer")==true){
alert("ok 2");
$("#action1").removeClass('activer');
$("#action2").removeClass('activer');
}
});
[/javascript]

je joue sur une class activer sur les id

Re: Validation par deux boutons chronometrés

par Lyssorus » 29 mai 2013, 17:06

J'ai amélioré mon code et c'est plus cohérent mais ça ne fonctionne toujours pas ^^'

[javascript]
function RAZ(){
var dcy = 0;

}

function validation(){
if(dcy == 3){
sendPhp('4','10');
setTimeout(sendPhp('4','00'),5000);
}
if(dcy < 3 || dcy==2){
RAZ();
}


}

$(".DCY1").mouseup(function(){
var dcy = dcy+1;
setTimeout(RAZ(),2000);
validation();
});

$(".DCY2").mouseup(function(){
sendPhp('4','00');
var dcy = dcy+2;
setTimeout(RAZ(),2000);
validation();
});
[/javascript]

Re: Validation par deux boutons chronometrés

par Lyssorus » 29 mai 2013, 17:01

De ce que j'ai compris je pense que tu n'as pas compris XD

Ou c'est moi qui ne comprends pas, ce qui, vous l'aurez compris, est fort possible.

Lol.

Là si je suis bien le truc, tu fait action1 donc action = 1.
Si tu fait action2, tu test action et si action ==1 alors c'est great.

Mais si tu fait action2 en premier et action1 après, ça ne fonctionne pas si ?

Moi il faut que dans les deux cas ça fonctionne :D

(Pas chiant le gars hein ^^')

Merci de te pencher une fois de plus sur mon problème en tout cas ;)

Édit : Arf j'avais même pas vu ce que tu avais écris après le code :p

Re: Validation par deux boutons chronometrés

par ghost5922 » 29 mai 2013, 16:56

Re,

désolé pas fait gaf ton sujet a ete deplace ^^

voila c'est pas le top du top mais ca marche ^^

[javascript]
var action=0;
function actions(type){
if(type=='plus'){
action=+1;
}
if(type=='moin'){
action=-1;
}
}
$("#action1").click(function() {
actions("plus");
});
$("#action2").click(function() {
if(action==1){
alert("YES");//ici tu mets ton code a la place
actions("moin");
}
});
[/javascript]

<img src="1.jpg" width="50" id="action1" /><br /><br /><br />
<img src="1.jpg" width="50" id="action2" />

il faut obligatoirement avoir clique sur action1 pour que l’événement de action2 marche

Re: Validation par deux boutons chronometrés

par Lyssorus » 29 mai 2013, 16:51

Voilà ce que j'ai pour l'instant si ça peut aider quelqu'un à m'aiguiller :p

[javascript]
function RAZ(){
var dcy = 0;
}

function validation(){
if(dcy == 3){
sendPhp('4','10');
}
else{
RAZ();
}

setTimeout(sendPhp('4','00'),5000);
}

$(".DCY1").mouseup(function(){

var dcy = dcy+1;
setTimeout(RAZ(),2000);
});

$(".DCY2").mouseup(function(){
sendPhp('4','00');
var dcy = dcy+2;
setTimeout(RAZ(),2000);
});
[/javascript]

Soucis ça ne fonctionne pas lol. Évidemment :D

Re: Validation par deux boutons chronometrés

par Lyssorus » 29 mai 2013, 15:47

Bah je t'avouerais que dans le cas présent je ne vois pas trop l'utilité ^^'

Mais avec certaines machines, principalement des presses, l'opérateur est prié de mettre une main sur chaque bouton qui sont assez écarté l'un de l'autre pour lui passer l'envie de vouloir aller plus vite, et de tenir la pièce qu'il presse d'une main pendant qu'il lance la machine avec l'autre, augmentant ainsi les risques de se presser la main ^^'.

Donc bon, ici l'opérateur est loin de la machine, il n'y a personne autour (normalement) donc on m'a juste dit, "le système est fait comme ça, donc on s'en approche le plus possible" :p

Là je pense qu'en fait c'est un peu comme l'AU, pour éviter qu'on clic dessus par accident, et qu'on lance le cycle dans la cabine du camion (ce qui ferait un trou quand même ^^').

Je suis en train de chercher, mais je ne vois pas trop comment faire ma condition

If(bouton1 || bouton2)
setTimeout(retour,1s)
if(bouton2 || bouton1)
lancer le cycle

C'est nul lol, je ne vois même pas comment faire pour qu'il soit obligé de faire un bouton et forcement l'autre ^^'

Re: Validation par deux boutons chronometrés

par ghost5922 » 29 mai 2013, 15:28

Re,

:p pourquoi deux bouton une sécurité ?

Re: Validation par deux boutons chronometrés

par Lyssorus » 29 mai 2013, 15:23

Merci bien je regarde ça ;)

Re: Validation par deux boutons chronometrés

par moogli » 29 mai 2013, 15:20

Modération :
Afin d'obtenir plus de réponses, le sujet a été déplacé dans un forum plus approprié.


salut,


regarde du coté de la fonction javascript setTimeout.

@+

Validation par deux boutons chronometrés

par Lyssorus » 29 mai 2013, 15:07

Bonjour ou re,

Aller un nouveau défis pour nous :p

Les deux boutons vert, ils servent dans la réalité à lancer le cycle de la machine. Il faut normalement avoir les deux enfoncé simultanément pour que ça fonctionne.

Image

Bon je sais qu'avec un petit soft on peut mettre deux souris sur un PC :p mais je doute que mon client veuille faire des combats d’icône de bureau XD

Donc j'aimerais qu'il soit obligé de cliquer sur un des deux, puis sur l'autre dans un temps donné, ceci pour éviter les départs inopiné.

Il faudrait qu'il puisse commencer par l'un ou l'autre sans distinction.

Merci de la lecture.