fonction confirm(), comment recupérer le choix du user

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 : fonction confirm(), comment recupérer le choix du user

par Snoops » 28 mars 2006, 12:08

J'ai réussi à faire exactement ce que je voulais.

Voilà le code de la fonction js :

Code : Tout sélectionner

function confirmation(valeur) { if (valeur == "Clore la demande") { if (confirm ("La clotûre est définitive. Etes-vous sûr?")) { document.Gestion_des_comptes.submit(); } else { return false; } } else { document.Gestion_des_comptes.submit(); } return true; }
et celui des bouton ressemble à ca :

Code : Tout sélectionner

NAME='enreg' ID='enreg' VALUE='Mise à jour' ONCLICK='confirmation(\"Mise à jour\");'>
merci

par Snoops » 27 mars 2006, 13:16

Je viens enfin de me mettre au test de cette option (type bouton + tests javascripts sur la valeur), car ça ne mettait pas essentiel jusqu'à maintenant.
Par contre lorsque je clic sur un bouton, rien ne se passe...
J'ai voulu faire s'afficher la valeur du bouton cliqué mais même ca, ca ne fonctionne pas. Est-ce normal ?

Voici le code de mon formulaire :

Code : Tout sélectionner

<FORM ACTION="index.php" NAME="Gestion_des_comptes" METHOD="post"> ... <INPUT TYPE='button' CLASS='bouton' ID='enreg' NAME='enreg' VALUE=
<?PHP
if ($login_encours == "")
{
	if ($valider=="MODIFIER")
	{
		echo "'Modifier'>";
	}
	else
	{
		echo "'Créer'>";
	}
}
else
{
?>

Code : Tout sélectionner

'Clore la demande' ONCLICK='confirmation();'>&nbsp; <INPUT TYPE='button' CLASS='bouton' NAME='enreg' VALUE='Mise à jour' ONCLICK='confirmation();'>&nbsp; <INPUT TYPE='button' CLASS='bouton' NAME='enreg' VALUE='Imprimer' ONCLICK='confirmation();'> </FORM>
Voici le code de ma fonction :

Code : Tout sélectionner

function confirmation() { var toto = document.Gestion_des_comptes.enreg.value; alert (toto); if (document.Gestion_des_comptes.enreg.value == "Modifier") { // document.Gestion_des_comptes.submit(); } else { if (document.Gestion_des_comptes.enreg.value == "Créer") { // document.Gestion_des_comptes.submit(); } else { if (document.Gestion_des_comptes.enreg.value == "Clore la demande") { if (confirm ("La clotûre est définitive. Etes-vous sûr?")) { // document.Gestion_des_comptes.submit(); } else { return false; } } else { if (document.Gestion_des_comptes.enreg.value == "Mise à jour") { // document.Gestion_des_comptes.submit(); } } } } return true; }
Voyez-vous une erreur?

par Snoops » 01 mars 2006, 19:23

[HS=Foot]
[HS=Foot]
[
PS : T'inquiètes dimanche à 19h on sortira la tête haute et les 3 points en poche :wink: :lol:
J'espère bien !! sinon :axe: car je vais en prendre plein la tête au boulot.
:D
PS: j'y vais moua :lol:
[/HS]
Moi aussi je suis dans la merde s'il paye... :
J'ai parié avec un marseillais de mon taf (mon supérieur :P) que l'equipe qui perd paye le repas de l'autre lundi... (10€ c'est pas la mort)
Mais la où j'ai fait pire, c'est que je lui ai parié que si Paris perd, je lui paye autant de bouffe que de but d'écart ...
Je te le dis ... je suis dans la merde s'ils perdent ... HIHIHI

Moi je ne peux pas y aller :cry:
[/HS]

par starkeus » 01 mars 2006, 16:25

[HS=Foot]
[
PS : T'inquiètes dimanche à 19h on sortira la tête haute et les 3 points en poche :wink: :lol:
J'espère bien !! sinon :axe: car je vais en prendre plein la tête au boulot.
:D
PS: j'y vais moua :lol:
[/HS]

par Invité » 01 mars 2006, 16:15

Ok mais le problème c'est que j'ai plusieurs bouton "submit" qui me permettent soit d'imprimer la page soit de clore la demande soit de faire une simple mise a jour.
Et moi ce qui m'interesse c'est dans le cas ou il veut clore la demande, juste verifier qu'il est bien sur de son choix...
Donc je ne pense pas que le "onSubmit=..." fonctionnerait dans ce cas. Si?
Alors je te conseille d'utiliser de simples boutons (type="button") au lieu de boutons submit classique. Sur chaque bouton tu captes l'évènement onClick et selon le nom du bouton (par exemple), dans une fonction JS, tu lances les actions adéquates (saches que pour envoyer un formulaire tu peux faire : this.form.submit())
OK merci, j'ai pas encore eu le temps de tester, mais je vais faire ce que tu viens de me dire ca me parait une très bonne option.

PS : T'inquiètes dimanche à 19h on sortira la tête haute et les 3 points en poche :wink: :lol:

par starkeus » 01 mars 2006, 10:21

Ok mais le problème c'est que j'ai plusieurs bouton "submit" qui me permettent soit d'imprimer la page soit de clore la demande soit de faire une simple mise a jour.
Et moi ce qui m'interesse c'est dans le cas ou il veut clore la demande, juste verifier qu'il est bien sur de son choix...
Donc je ne pense pas que le "onSubmit=..." fonctionnerait dans ce cas. Si?
Alors je te conseille d'utiliser de simples boutons (type="button") au lieu de boutons submit classique. Sur chaque bouton tu captes l'évènement onClick et selon le nom du bouton (par exemple), dans une fonction JS, tu lances les actions adéquates (saches que pour envoyer un formulaire tu peux faire : this.form.submit())

par Snoops » 28 févr. 2006, 22:17

Le truc qu'il n'a pas compris c'est peut-être ça justement ^^
Une convention impose que si un évènement javascript retourne une valeur, et que cette valeur est fausse, alors l'action "par défaut" de l'objet n'est pas prise en compte.

Exemple : <a href="http://www.google.fr" onclick="return false">clique ici pour voir</a> n'aura aucun effet si l'utilisateur clique sur le lien (on annule l'effet par défaut du lien).
Idem avec un "onsubmit="return false", qui annule l'effet par défaut du bouton, donc la soumission du formulaire.
La c'est bon je pense avoir compris. Merci pour vos explications.
Je ne met pas le résolu je test mon code demain au taf et si tout fonctionne bien je le mettrais, sinon je chercherais a approfondir mes connaissances et si toujours rien je reviens vous voir.
Merci beaucoup.

par Snoops » 28 févr. 2006, 22:16

Moi je dirai plutot ça:
<form action="" method="post" onSubmit="return confirm ('Tu es sur?');" >
<input .... etc />
Explication: s'il dit oui alors le formulaire est envoyé, s'il fait annuler alors rien n'est envoyé et il reste sur la page.
Ok mais le problème c'est que j'ai plusieurs bouton "submit" qui me permettent soit d'imprimer la page soit de clore la demande soit de faire une simple mise a jour.
Et moi ce qui m'interesse c'est dans le cas ou il veut clore la demande, juste verifier qu'il est bien sur de son choix...
Donc je ne pense pas que le "onSubmit=..." fonctionnerait dans ce cas. Si?

par naholyr » 28 févr. 2006, 21:45

Le truc qu'il n'a pas compris c'est peut-être ça justement ^^
Une convention impose que si un évènement javascript retourne une valeur, et que cette valeur est fausse, alors l'action "par défaut" de l'objet n'est pas prise en compte.

Exemple : <a href="http://www.google.fr" onclick="return false">clique ici pour voir</a> n'aura aucun effet si l'utilisateur clique sur le lien (on annule l'effet par défaut du lien).
Idem avec un "onsubmit="return false", qui annule l'effet par défaut du bouton, donc la soumission du formulaire.

par starkeus » 28 févr. 2006, 21:19

Moi je dirai plutot ça:
<form action="" method="post" onSubmit="return confirm ('Tu es sur?');" >
<input .... etc />
Explication: s'il dit oui alors le formulaire est envoyé, s'il fait annuler alors rien n'est envoyé et il reste sur la page.

par Snoops » 28 févr. 2006, 20:28

Je dois paraitre tres bete, désolé, mais je n'arrive pas a comprendre comment la valeur de true ou de false m'aide a soumettre ou non le formulaire...

Code : Tout sélectionner

<javascript> function confirmation() { if (confirm("Tu es sûr ?")) return true; else return false; } </javascript> ... <FORM ..> ... <INPUT TYPE='submit' NAME='valider' VALUE='Confirmer' ONCLICK='javascript:confirmation()'> </FORM>
Comment cela peut-il fonctionner ???

Désolé :oops:

Est-ce que, que je clic sur annuler ou ok il me valide mon formulaire tout le temps et après je dois tester la valeur de $valider qui sera égale à false ou true?

par Truc » 28 févr. 2006, 17:35

un mix des 2 propositions:
if (confirm("Tu es sûr ?")) 
   return true;
else 
   return false;

par Invité » 28 févr. 2006, 17:30

La fonction confirm retourne TRUE si l'utilsiateur à cliqué sur "OK" et FALSE si l'utilisateur à cliqué sur "Annuler"

Code : Tout sélectionner

if (confirm("Tu es sûr ?")) { alert("Tu as cliqué sur OK"); } else { alert("Tu as cliqué sur ANNULER"); }
Très bien je te remercie.
Par contre puis-je abuser de votre précieux temps?
Je voudrais juste que lorsqu'il clic sur annuler rien ne bouge (il reste sur la meme page avec les meme options de cochées) et s'il clic sur ok, que cela est pour effet de valider mon formulaire en cours tout comme un bouton submit normal.

Thank's.

par zeus » 28 févr. 2006, 13:39

La fonction confirm retourne TRUE si l'utilsiateur à cliqué sur "OK" et FALSE si l'utilisateur à cliqué sur "Annuler"

Code : Tout sélectionner

if (confirm("Tu es sûr ?")) { alert("Tu as cliqué sur OK"); } else { alert("Tu as cliqué sur ANNULER"); }

par Snoops » 28 févr. 2006, 12:48

J'ai compris la facon de faire, mais je suis plus php que javascript ... donc je ne sais pas comment on distingue le clic sur le "ok" du confirm(), du clic sur le "Annuler".
Donc si vous pouviez m'aider merci. Ou juste m'aiguiller d'avantage.
Merci d'avance.