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

Eléphant du PHP | 360 Messages

27 févr. 2006, 19:52

Bonsoir,

J'ai ajouté cette commande à un bouton "submit" :

Code : Tout sélectionner

ONCLICK='javascript:confirm(\"Etes-vous sûr de vouloir clore la demande?\")'
Comment puis-je récupérer la valeur du bouton ("OK", "Annuler") sur lequel l'utilisateur à cliqué ?

Merci

Mammouth du PHP | 19672 Messages

27 févr. 2006, 21:11

Il faudrait que tu mettes le confirm() dans une fonction qui retourne true ou false selon le bouton cliqué et que tu appelles la fonction dans le onclick en faisant :

Code : Tout sélectionner

onclick="return ta_fonction();"
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 360 Messages

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.

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

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"); }
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Invité
Invité n'ayant pas de compte PHPfrance

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.

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 févr. 2006, 17:35

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

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

Eléphant du PHP | 360 Messages

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?

Eléphant du PHP | 441 Messages

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.
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Administrateur PHPfrance
Administrateur PHPfrance | 3131 Messages

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.

Eléphant du PHP | 360 Messages

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?

Eléphant du PHP | 360 Messages

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.

Eléphant du PHP | 441 Messages

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())
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Invité
Invité n'ayant pas de compte PHPfrance

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:

Eléphant du PHP | 441 Messages

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]
Futures Stars par ici >> www.apel-doorn.com
fan d'info et du ... PSG !! :D
Apprendre, comprendre et maîtriser telle est ma devise!
Fan inconditionnel de netvibes

Eléphant du PHP | 360 Messages

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]