Gérer le retour de confirm() en JavaScript
Résolu/Fermé
Mickael86480
Messages postés
660
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
-
Modifié par Mickael86480 le 2/05/2013 à 17:46
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 6 mai 2013 à 12:23
Mickael86480 Messages postés 660 Date d'inscription vendredi 28 mai 2010 Statut Membre Dernière intervention 11 mars 2021 - 6 mai 2013 à 12:23
A voir également:
- Gérer le retour de confirm() en JavaScript
- Telecharger javascript - Télécharger - Langages
- Gerer les profils netflix - Guide
- Retour à la ligne excel - Guide
- Raccourci clavier retour en arrière - Guide
- Confirmation de lecture whatsapp - Guide
5 réponses
Natio78
Messages postés
719
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
27 mai 2013
96
3 mai 2013 à 11:11
3 mai 2013 à 11:11
bonjour,
as tu regardé du côté de jQuery et jQuery UI qui pourrait bien t'être utile sur ce coup là.
tiens regarde c'est ce que tu veux faire je crois:
https://jqueryui.com/dialog/#modal-confirmation
pour ce qui est du code tu pourrais l'inclure assez facilement ça ressemblerait à quelque chose comme ça:
et tu ajoutes une div en bas de ta page en display:none;
as tu regardé du côté de jQuery et jQuery UI qui pourrait bien t'être utile sur ce coup là.
tiens regarde c'est ce que tu veux faire je crois:
https://jqueryui.com/dialog/#modal-confirmation
pour ce qui est du code tu pourrais l'inclure assez facilement ça ressemblerait à quelque chose comme ça:
function verif(){ $( "#dialog-confirm" ).dialog({ resizable: false, height:140, modal: true, buttons: { "Supprimer ce produit": function() { window.open("supp.php", "_self"); }, Annuler: function() { $( this ).dialog( "close" ); } } }); }); }
et tu ajoutes une div en bas de ta page en display:none;
<div id="dialog-confirm" title="Confirmation de suppression" style="display:none"> Êtes vous sur de bien vouloir supprimer ce produit? </div>
pignou0
Messages postés
51
Date d'inscription
samedi 2 mars 2013
Statut
Membre
Dernière intervention
28 mai 2013
2
3 mai 2013 à 17:39
3 mai 2013 à 17:39
Le retour de confirm se fait par true ou false, true si l'utilisateur appuie sur OK et false sinon
il te suffit de faire
if(confirm('Êtes-vous sûr de vouloir supprimer ce produit?') ==true)
{}
else
{}
il te suffit de faire
if(confirm('Êtes-vous sûr de vouloir supprimer ce produit?') ==true)
{}
else
{}
Mickael86480
Messages postés
660
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
35
Modifié par Mickael86480 le 3/05/2013 à 19:52
Modifié par Mickael86480 le 3/05/2013 à 19:52
Merci pour ta réponse.
J'ai complété ton exemple, le problème c'est que plus rien ne s'affiche, je pense que le problème viens de mon rajout :)
voici mon code de la fonction :
Qu'en penses-tu?
J'ai complété ton exemple, le problème c'est que plus rien ne s'affiche, je pense que le problème viens de mon rajout :)
voici mon code de la fonction :
<script language="JavaScript"> function verif(){ if(confirm('Êtes-vous sûr de vouloir supprimer ce produit?') ==true) {<?php $requete="DELETE FROM stock WHERE materiel=\"".$_POST['mat']."\""; $query=mysql_query($requete)or die(mysql_error()); ?> alert('Produit supprimé');} else {window.open("acceuil.php","_self")} </script>
Qu'en penses-tu?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
4 mai 2013 à 13:12
4 mai 2013 à 13:12
la tu mélanges le php avec du javascript ça ne peut pas fonctionner
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
3 mai 2013 à 23:06
3 mai 2013 à 23:06
sans jQuery, en modifiant juste un peu ton code d'origine:
<html> <head> <title>Sans Titre</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="HAPedit 2.6"> <link href="menu_php.css" rel="stylesheet" type="text/css"> <link href="plan.css" rel="stylesheet" type="text/css"> </head> <body> <script type="text/javascript" > function confirm_suppr(id_lire){ //on lit quel produit a été sélectionné (c'est mieux de l'indiquer dans la boite confirm) var produit=document.getElementById(id_lire).value; if(confirm('Êtes-vous sûr de vouloir supprimer ce produit: '+produit+" ? ")){ //si ok on passe l'info dans l'URL document.getElementById(id_form).action +='?suppr_prod=y'; //on soumet le formulaire, il suffit dans le script de test que l'on a bien suppr_prod=y dans l'URL (en $_GET) document.forms['form_produit'].submit(); }else{ //si pas confirm return false; //dans ce cas on réaffiche la page des produits //ou // window.location.href="acceuil.php"; } } </script> <?php $a=$_POST['hid']; include ("connection.php"); echo'<center><strong><u><h1>GESTSTOCK</h1><h3>votre application de gestion de stock d\'entreprise.</h3></u><br />'; $tab=array(); $materiel=''; $i=0; $requete="SELECT genre, materiel FROM stock WHERE quantité <= min ORDER BY materiel"; $query=mysql_query($requete); //on met un name à la <form et un id au <select echo'<form name="form_produit" method="POST" action="'.$_SERVER['PHP_SELF'].'"> <div class="pps"> <center> Afin d\'identifier le produit à retirer du stock, merci de le sélectionner dans le menu ci-dessous.<br /> Les lignes écritent en rouge correspondent à un manque de stock.<br /><br /> <strong>Matériel :</strong> <select name="mat" id="mat" >'; while($tableau=mysql_fetch_array($query)){ if($materiel != $tableau['materiel']){ $i=$i+1; $materiel=$tableau['materiel']; $tab[$i]=$materiel; echo'<option value="'.$tableau['materiel'].'" style="color:#B9121B;">'.$tab[$i].'</option>'; } } $requete="SELECT genre, materiel FROM stock WHERE quantité > min ORDER BY materiel"; $query=mysql_query($requete); while($tableau=mysql_fetch_array($query)){ if($materiel != $tableau['materiel']){ $i=$i+1; $materiel=$tableau['materiel']; $tab[$i]=$materiel; echo'<option value="'.$tableau['materiel'].'" style="color:#006633;">'.$tab[$i].'</option>'; } } //tel que tu fais les matériels en stock <=min sont au début et les autres après //pour tous les mettre ensemble dans l'ordre avec des couleurs différentes et en plus simple: //pour tester, otes les /* */ et commentes tes 2 boucles while /* $requete="SELECT genre, materiel,quantité,min FROM stock ORDER BY materiel"; $query=mysql_query($requete); while($tableau=mysql_fetch_array($query)){ echo'<option value="'.$tableau['materiel'].'"'; //style différent suivant état du stock if($tableau['quantite'] <= $tableau['min']){ echo 'style="color:#B9121B;"'; }elseif($tableau['quantite'] > $tableau['min']){ echo 'style="color:#006633;"'; } echo '>'.$tableau['materiel'].'</option>'; } } */ //ci dessous le bouton Retirer ne doit pas être à la fois type="submit" et déclencher une fct js par onclick //j'ai changé le nom de ta fonction et on lui passe l'id du select en argument echo' </select> <br /><br /><input type="button" name="ret" value="Retirer" onclick="confirm_suppr(\'mat\')"> <input type="hidden" name="hid" value="ok"> </center> </div> </form>'; if($_GET['suppr_prod'] && $_GET['suppr_prod']=='y'){ //si on a l'info suppr_prod dans l'url c'est que la confirm a été ok requete="DELETE FROM stock WHERE materiel=\"".$_POST['mat']."\""; $query=mysql_query($requete)or die(mysql_error()); ?> <script language="JavaScript"> alert("Produit supprimé"); </script> <?php } ?> </body> </html>
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
4 mai 2013 à 13:11
4 mai 2013 à 13:11
PS, j'était pas bien réveillé hier soir:
<html> <head> <title>Sans Titre</title> <meta http-equiv="content-type" content="text/html; charset=iso-8859-1"> <meta name="generator" content="HAPedit 2.6"> <link href="menu_php.css" rel="stylesheet" type="text/css"> <link href="plan.css" rel="stylesheet" type="text/css"> </head> <body> <script type="text/javascript" > function confirm_suppr(id_form,id_lire){ //on lit quel produit a été sélectionné (c'est mieux de l'indiquer dans la boite confirm) var produit=document.getElementById(id_lire).value; if(confirm('Êtes-vous sûr de vouloir supprimer ce produit: '+produit+" ? ")){ //si ok on passe l'info dans l'URL document.getElementById(id_form).action +='?suppr_prod=y'; //on soumet le formulaire, il suffit dans le script de test que l'on a bien suppr_prod=y dans l'URL (en $_GET) document.forms['form_produit'].submit(); }else{ //si pas confirm return false; //dans ce cas on réaffiche la page des produits //ou // window.location.href="acceuil.php"; } } </script> <?php $a=$_POST['hid']; include ("connection.php"); echo'<center><strong><u><h1>GESTSTOCK</h1><h3>votre application de gestion de stock d\'entreprise.</h3></u><br />'; $tab=array(); $materiel=''; $i=0; $requete="SELECT genre, materiel FROM stock WHERE quantité <= min ORDER BY materiel"; $query=mysql_query($requete); //on met un name et un id à la <form et un id au <select echo'<form name="form_produit" id="form_produit" method="POST" action="'.$_SERVER['PHP_SELF'].'"> <div class="pps"> <center> Afin d\'identifier le produit à retirer du stock, merci de le sélectionner dans le menu ci-dessous.<br /> Les lignes écritent en rouge correspondent à un manque de stock.<br /><br /> <strong>Matériel :</strong> <select name="mat" id="mat" >'; while($tableau=mysql_fetch_array($query)){ if($materiel != $tableau['materiel']){ $i=$i+1; $materiel=$tableau['materiel']; $tab[$i]=$materiel; echo'<option value="'.$tableau['materiel'].'" style="color:#B9121B;">'.$tab[$i].'</option>'; } } $requete="SELECT genre, materiel FROM stock WHERE quantité > min ORDER BY materiel"; $query=mysql_query($requete); while($tableau=mysql_fetch_array($query)){ if($materiel != $tableau['materiel']){ $i=$i+1; $materiel=$tableau['materiel']; $tab[$i]=$materiel; echo'<option value="'.$tableau['materiel'].'" style="color:#006633;">'.$tab[$i].'</option>'; } } //tel que tu fais les matériels en stock <=min sont au début et les autres après //pour tous les mettre ensemble dans l'ordre avec des couleurs différentes et en plus simple: //pour tester, otes les /* */ et commentes tes 2 boucles while /* $requete="SELECT genre, materiel,quantité,min FROM stock ORDER BY materiel"; $query=mysql_query($requete); while($tableau=mysql_fetch_array($query)){ echo'<option value="'.$tableau['materiel'].'"'; //style différent suivant état du stock if($tableau['quantite'] <= $tableau['min']){ echo 'style="color:#B9121B;"'; }elseif($tableau['quantite'] > $tableau['min']){ echo 'style="color:#006633;"'; } echo '>'.$tableau['materiel'].'</option>'; } } */ //ci dessous le bouton Retirer ne doit pas être à la fois type="submit" et déclencher une fct js par onclick //j'ai changé le nom de ta fonction et on lui passe l'id du select en argument echo' </select> <br /><br /><input type="button" name="ret" value="Retirer" onclick="confirm_suppr(\'form_produit\',\'mat\')"> <input type="hidden" name="hid" value="ok"> </center> </div> </form>'; if($_GET['suppr_prod'] && $_GET['suppr_prod']=='y'){ //si on a l'info suppr_prod dans l'url c'est que la confirm a été ok requete="DELETE FROM stock WHERE materiel=\"".$_POST['mat']."\""; $query=mysql_query($requete)or die(mysql_error()); ?> <script language="JavaScript"> alert("Produit supprimé"); </script> <?php } ?> </body> </html>
Mickael86480
Messages postés
660
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
35
4 mai 2013 à 13:20
4 mai 2013 à 13:20
Merci marche niquel, sauf quelques petites erreurs à mondifier, en cour mais merci Alain ainsi qu'aux autres de leurs réponses
Mickael86480
Messages postés
660
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
35
Modifié par Mickael86480 le 4/05/2013 à 14:20
Modifié par Mickael86480 le 4/05/2013 à 14:20
Un avertissement persiste (comme l'appli est destinée à du local cela est ennuyeux)
voici l'erreur :
Notice: Undefined index: suppr_prod in C:\wamp\www\sites\entreprise\sites\test_local\int\supp.php on line 96
"suppr_prod" étant le nom du $_GET comment puis-je l'initialisé?
voici l'erreur :
Notice: Undefined index: suppr_prod in C:\wamp\www\sites\entreprise\sites\test_local\int\supp.php on line 96
"suppr_prod" étant le nom du $_GET comment puis-je l'initialisé?
Alain_42
Messages postés
5361
Date d'inscription
dimanche 3 février 2008
Statut
Membre
Dernière intervention
13 février 2017
894
4 mai 2013 à 18:29
4 mai 2013 à 18:29
décidément je n'avait pas les yeux en face des trous:
if($_GET['suppr_prod'] && $_GET['suppr_prod']=='y')
a remplacer par:
C'est vrai qu'avec jQuery dialog tu aurait une boite de dialogue beaucoup plus jolie
if($_GET['suppr_prod'] && $_GET['suppr_prod']=='y')
a remplacer par:
if(isset($_GET['suppr_prod']) && $_GET['suppr_prod']=='y')
C'est vrai qu'avec jQuery dialog tu aurait une boite de dialogue beaucoup plus jolie
Mickael86480
Messages postés
660
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
35
4 mai 2013 à 18:51
4 mai 2013 à 18:51
Merci problème résolu. Je vais voir pour le JQuery. Un tuto a me conseiller peut-être?
Natio78
Messages postés
719
Date d'inscription
vendredi 9 novembre 2007
Statut
Membre
Dernière intervention
27 mai 2013
96
6 mai 2013 à 10:13
6 mai 2013 à 10:13
et puis avec jquery et ui tu pourrais assez aisément séparer le js du php et le traitement de la requête.
Là il y a tout dans la même page ça risque de ne pas être très pratique dans le futur si tu veux apporter des modifications.
Pour ce qui est du tuto pour le dialog de UI tu as:
https://jqueryui.com/dialog/
ou sinon en beaucoup plus détaillé:
https://openclassrooms.com/fr/courses
Là il y a tout dans la même page ça risque de ne pas être très pratique dans le futur si tu veux apporter des modifications.
Pour ce qui est du tuto pour le dialog de UI tu as:
https://jqueryui.com/dialog/
ou sinon en beaucoup plus détaillé:
https://openclassrooms.com/fr/courses
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Mickael86480
Messages postés
660
Date d'inscription
vendredi 28 mai 2010
Statut
Membre
Dernière intervention
11 mars 2021
35
6 mai 2013 à 12:23
6 mai 2013 à 12:23
Merci à vous tous d'avoir pris le temps de me répondre et de résoudre mon problème. Merci également à Natio pour les tutos, à étudier.
3 mai 2013 à 11:59
J'ai fais ce que tu m'as dis, du moins j'espère :)
Le problème est que je n'ai plus le message de confirmation (l'ais-je mal placé peut-être :) je ne savais pas comment l'intégré donc je l'ai laissé entre le balise JavaScript)
Voici mon code (les modifications sont en gras et italique:
Modifié par Natio78 le 3/05/2013 à 14:49
1) copier coller ce fichier => http://code.jquery.com/jquery-1.9.1.min.js et le mettre dans un fichier que tu appeleras jquery.js par exemple
2) télécharger jquery UI (https://jqueryui.com/download/ ) et que tu inclus jquery.ui.js dans ton fichier
du style en haut avant tes balises <script></script> tu mets ça:
bien sur il faut que le fichier jquery.js et le dossier jquery-ui soit dans un dossier js ici. A toi de voir.
Une fois que tu auras fais ça, ton code fonctionnera
edit: ton div en bas de page ne doit pas être entre les balises <script language="JavaScript">
c'est juste un div normal
3 mai 2013 à 20:07
https://jquery.com/download/
et est-ce ceci dont tu parle?
https://jqueryui.com/