Fenetre de confirmation de suppression
Résolu
GUIPE
Messages postés
94
Date d'inscription
Statut
Membre
Dernière intervention
-
GUIPE Messages postés 94 Date d'inscription Statut Membre Dernière intervention -
GUIPE Messages postés 94 Date d'inscription Statut Membre Dernière intervention -
Bonjour, tout d'abord voici mon code :
<html>
<head>
<?php $lien="admincat.php?action=Supprimer&id=".$cat["id"].""; ?>
<SCRIPT LANGUAGE="JavaScript">
function confirmation() {
var msg = "Êtes-vous sur de vouloir supprimer cette catégorie ?";
if (confirm(msg))
location.href("<? echo ''.$lien.'';?>");
}
</SCRIPT>
<body>
<?php
include("connection.php");
if(isset($_GET['action']))
{
switch($_GET['action'] )
{
case 'Supprimer':
//$suppr=mysql_db_query($db,"DELETE from cat WHERE id='".$_GET['id']."' "); // on va aller chercher le numéro d'id dans l'URL ==> GET.
echo'supprimer';
break;
case 'Ajouter':
$add=mysql_db_query($db,"INSERT INTO cat (nom_fr) VALUES ('".$_POST['nom_fr']."') WHERE id='".$_POST['id']."'" );
echo"case ajouter";
break;
case 'Modifier':
$mod = mysql_db_query($db,"UPDATE cat SET nom_fr='".$_POST['nom_fr']."' WHERE id='".$_POST['id']."'");
break;
default: echo"Choisissez un des trois choix";
}
}
$r_cat = mysql_db_query($db,"SELECT * FROM cat ORDER BY ordre ASC");
while($cat = mysql_fetch_assoc($r_cat))
{
echo'<br /><br /><form method="post" action="admincat.php?action=Modifier"><input type="text" name="nom_fr" value="'.$cat['nom_fr'].'" />';
echo'<input type="submit" value="Modifier" />
<input type="button" onClick="confirmation();" value="Supprimer">'; // on fait id= ... pour insérer le numéro d'id dans l'url !
echo'<input type="hidden" name="id" value='.$cat['id'].'" /></form>';
}
echo'<form method="post" action="admincat.php?action=Ajouter"><input type="text" name="nom_fr" " /><input type="submit" name="Ajouter" value="Ajouter" /><input type="hidden" name="id" value="'.$cat['id'].'" /></form>';
?>
<body>
<html>
Je veux faire une page d'administration pour les catégories d'un futur site web, voici mon code ci dessus. Je veux pouvoir modifier, supprimer ou ajouter des catégories. La requête modifier fonctionne. Maintenant je veux faire marcher la requête supprimer avec une fenêtre de confirmation. La fenêtre de confirmation s'affiche mais aucune suppression n'est effectuée. Je ne sais pas trop d'ou vient le problème. Mais il est possible que ce soit là :
<?php $lien="admincat.php?action=Supprimer&id=".$cat["id"].""; ?>
<SCRIPT LANGUAGE="JavaScript">
function confirmation() {
var msg = "Êtes-vous sur de vouloir supprimer cette catégorie ?";
if (confirm(msg))
location.href("<? echo ''.$lien.'';?>");
}
<html>
<head>
<?php $lien="admincat.php?action=Supprimer&id=".$cat["id"].""; ?>
<SCRIPT LANGUAGE="JavaScript">
function confirmation() {
var msg = "Êtes-vous sur de vouloir supprimer cette catégorie ?";
if (confirm(msg))
location.href("<? echo ''.$lien.'';?>");
}
</SCRIPT>
<body>
<?php
include("connection.php");
if(isset($_GET['action']))
{
switch($_GET['action'] )
{
case 'Supprimer':
//$suppr=mysql_db_query($db,"DELETE from cat WHERE id='".$_GET['id']."' "); // on va aller chercher le numéro d'id dans l'URL ==> GET.
echo'supprimer';
break;
case 'Ajouter':
$add=mysql_db_query($db,"INSERT INTO cat (nom_fr) VALUES ('".$_POST['nom_fr']."') WHERE id='".$_POST['id']."'" );
echo"case ajouter";
break;
case 'Modifier':
$mod = mysql_db_query($db,"UPDATE cat SET nom_fr='".$_POST['nom_fr']."' WHERE id='".$_POST['id']."'");
break;
default: echo"Choisissez un des trois choix";
}
}
$r_cat = mysql_db_query($db,"SELECT * FROM cat ORDER BY ordre ASC");
while($cat = mysql_fetch_assoc($r_cat))
{
echo'<br /><br /><form method="post" action="admincat.php?action=Modifier"><input type="text" name="nom_fr" value="'.$cat['nom_fr'].'" />';
echo'<input type="submit" value="Modifier" />
<input type="button" onClick="confirmation();" value="Supprimer">'; // on fait id= ... pour insérer le numéro d'id dans l'url !
echo'<input type="hidden" name="id" value='.$cat['id'].'" /></form>';
}
echo'<form method="post" action="admincat.php?action=Ajouter"><input type="text" name="nom_fr" " /><input type="submit" name="Ajouter" value="Ajouter" /><input type="hidden" name="id" value="'.$cat['id'].'" /></form>';
?>
<body>
<html>
Je veux faire une page d'administration pour les catégories d'un futur site web, voici mon code ci dessus. Je veux pouvoir modifier, supprimer ou ajouter des catégories. La requête modifier fonctionne. Maintenant je veux faire marcher la requête supprimer avec une fenêtre de confirmation. La fenêtre de confirmation s'affiche mais aucune suppression n'est effectuée. Je ne sais pas trop d'ou vient le problème. Mais il est possible que ce soit là :
<?php $lien="admincat.php?action=Supprimer&id=".$cat["id"].""; ?>
<SCRIPT LANGUAGE="JavaScript">
function confirmation() {
var msg = "Êtes-vous sur de vouloir supprimer cette catégorie ?";
if (confirm(msg))
location.href("<? echo ''.$lien.'';?>");
}
A voir également:
- Fenetre de confirmation de suppression
- Forcer suppression fichier - Guide
- Confirmation de lecture whatsapp - Guide
- Confirmation de lecture gmail - Guide
- Fenetre windows - Guide
- Fenetre de navigation privée - Guide
30 réponses
C'est bon ça fonctionne. A l'aide des fonctions addslashes et htmlentities. J'ai vu sur internet qu'il fallait les utiliser pour faire ce que je voulais. Meme si j'aimerai avoir des explications sur leurs roles réels !
D'accord merci.
Encore une petite chose, mon code fonctionne mais j'obtiens quand même ces 2 notifications :
==>
Notice: Undefined index: nom_fr in c:\users\dimexbat5\desktop\ectfrance.com\admin\admincat.php on line 10
Notice: Undefined index: nom_en in c:\users\dimexbat5\desktop\ectfrance.com\admin\admincat.php on line 11
Position
suite à la déclaration de ces variables :
$nomfr=addslashes($_POST['nom_fr']);
$nomen=addslashes($_POST['nom_en']);
Je nsais pas trop comment remédier à ces 2 erreurs
Encore une petite chose, mon code fonctionne mais j'obtiens quand même ces 2 notifications :
==>
Notice: Undefined index: nom_fr in c:\users\dimexbat5\desktop\ectfrance.com\admin\admincat.php on line 10
Notice: Undefined index: nom_en in c:\users\dimexbat5\desktop\ectfrance.com\admin\admincat.php on line 11
Position
suite à la déclaration de ces variables :
$nomfr=addslashes($_POST['nom_fr']);
$nomen=addslashes($_POST['nom_en']);
Je nsais pas trop comment remédier à ces 2 erreurs
Bon pour ce qui est de l'affichage du menu, c'est fait. J'ai bien mon menu déroulant comportant le nom de mes catégories puis quand je clique dessus, la liste des pages associées a ma catégories s'affichent.
Maintenant ce que je veux faire c'est administrer mes pages donc par catégorie. Mais donc dans ce cas là il faudrait que j'ai autant de pages d'administration que de catégories à savoir dans mon cas 11.
C'est à dire que je vais faire 11 liens sur mes 11 catégories vers 11 pages différentes dans laquelle je pourrais gérer mes pages.
PS: Je ne peux pas faire le lien en cliquant sur ma catégorie dans le menu parce que en cliquant g déjà une action qui s'effectue, à savoir le déroulement de mes pages associées à la catégorie.
Donc déjà ce que je veux faire dans un premier temps c'est en cliquant sur le noms de mes catégories, atterir sur une page dans lequel se trouve le contenu de ma table(txt_fr,txt_en,titre_fr,titre_en,ordre) et pouvoir les gérer !
Est-ce la bonne méthode ?
Maintenant ce que je veux faire c'est administrer mes pages donc par catégorie. Mais donc dans ce cas là il faudrait que j'ai autant de pages d'administration que de catégories à savoir dans mon cas 11.
C'est à dire que je vais faire 11 liens sur mes 11 catégories vers 11 pages différentes dans laquelle je pourrais gérer mes pages.
PS: Je ne peux pas faire le lien en cliquant sur ma catégorie dans le menu parce que en cliquant g déjà une action qui s'effectue, à savoir le déroulement de mes pages associées à la catégorie.
Donc déjà ce que je veux faire dans un premier temps c'est en cliquant sur le noms de mes catégories, atterir sur une page dans lequel se trouve le contenu de ma table(txt_fr,txt_en,titre_fr,titre_en,ordre) et pouvoir les gérer !
Est-ce la bonne méthode ?
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Voici ce que j'ai fait !
[CODE]$r_cat = mysql_db_query($db,"SELECT * FROM cat ORDER BY ordre ASC");
while($cat = mysql_fetch_assoc($r_cat))
{
echo' <div align="right"><form method="post" action="adminpages2.php&id='.$cat['id'].'">
<select name="catégories">
<option value="catégories">'.$cat['nom_fr'].'</option>
</select></form>';
}[/CODE]
Je souhaite créer une liste déroulante avec le noms de mes catégories dedans, le problème là est que ça affiche 11 fois(11 étant le nombre de mes catégories) une liste déroulante avec à l'intérieur 1 des 11 noms de ma catégorie. Et ce n'est pas ce que je veux. Je veux 1 seule liste déroulante avec mes 11 catégories qui défilent !
[CODE]$r_cat = mysql_db_query($db,"SELECT * FROM cat ORDER BY ordre ASC");
while($cat = mysql_fetch_assoc($r_cat))
{
echo' <div align="right"><form method="post" action="adminpages2.php&id='.$cat['id'].'">
<select name="catégories">
<option value="catégories">'.$cat['nom_fr'].'</option>
</select></form>';
}[/CODE]
Je souhaite créer une liste déroulante avec le noms de mes catégories dedans, le problème là est que ça affiche 11 fois(11 étant le nombre de mes catégories) une liste déroulante avec à l'intérieur 1 des 11 noms de ma catégorie. Et ce n'est pas ce que je veux. Je veux 1 seule liste déroulante avec mes 11 catégories qui défilent !
Bé non pas sur cette page. Sur cette page j'affiche juste un menu et une liste déroulante. C'est juste ma page précédente sur l'administration catégories que j'avais mis le numéro de la catégorie dans l'url !
C'est bon j'ai fait mon menu déroulant pas de problème. J'ai créé ma 2ème page ou je vais pouvoir gérer mon contenu selon la catégorie. J'ai utilisé les variables de session pour pouvoir récupérer l'id de ma catégorie sur la 2ème page. Voici le code :
<?php
session_start(); // (pour utiliser les variables de session)
// connexion a la BD
include("connection.php");
// recuperation de l'id de la categorie
if (isset($_POST['categories']) && $_POST['categories']!='') // vérification si on a bien choisi une des catégories dans la liste déroulante
{
// on met la categorie dans une variable de session
// ce qui permettra de l utiliser par la suite
$_SESSION['idcat'] = mysql_real_escape_string($_POST['categories']);
}
if(isset($_GET['action'])&& $_SESSION['idcat'])
{
switch($_GET['action'] )
{
case 'Supprimer':
$r_pages=mysql_db_query($db,"SELECT * FROM pages WHERE id=".$_GET['id']."");
while($pages = mysql_fetch_assoc($r_pages))
{
echo'Voulez-vous vraiment supprimer la page '.$pages['titre_fr'].'?
<form method="post" action="adminpages2.php?action=Suppression&id='.$pages['id'].'"><input type="submit" value="Suppression" />
<input type="button" value="Annuler" onClick="document.location=\'adminpages2.php\'" /></form>';
}
break;
case 'Suppression':
$suppr=mysql_db_query($db,"DELETE from pages WHERE id='".$_GET['id']."' ");
break;
case 'Ajouter':
$add=mysql_db_query($db,"INSERT INTO pages (titre_fr,titre_en,txt_fr,txt_en,ordre) VALUES ('$_POST[titre_fr]','$_POST[titre_en]','$_POST[txt_fr]','$_POST[txt_en]','$_POST[ordre]' ) ");
break;
case 'Modifier':
echo'<meta http-equiv="Refresh" content="1; url=adminpages2.php">';
$mod = mysql_db_query($db,"UPDATE pages SET titre_fr='$_POST[titre_fr]', titre_en='$_POST[titre_en]', txt_fr='$_POST[txt_fr]', txt_en='$_POST[txt_en]',ordre='$_POST[ordre]' WHERE id='$_POST[id]'");
break;
default: echo"Choisissez un des trois choix";
}
}
$r_pages= mysql_db_query($db,"SELECT * FROM pages WHERE id_cat='".$_SESSION['idcat']."' ORDER BY ordre ASC");
while($pages = mysql_fetch_assoc($r_pages))
{
echo'<form method="post" action="adminpages2.php?action=Modifier"><input type="text" name="titre_fr" value="'.$pages['titre_fr'].'" /><input type="text" name="titre_en" value="'.$pages['titre_en'].'" /><input type="text" name="txt_fr" value="'.$pages['txt_fr'].'" /><input type="text" name="txt_en" value="'.$pages['txt_en'].'" />
Position
<select name="ordre">';
for($i=1;$i<=100;$i++)
{
echo'<option value="'.$i.'"';
if($i==$pages['ordre']) // vérification
{
echo' selected="selected"';
}
echo'>'.$i.'</option>';
}
echo'</select>';
echo'<input type="submit" value="Modifier" /><input type="hidden" name="id" value="'.$pages['id'].'" />';
echo'<input type="button" value="Supprimer" onClick="document.location=\'adminpages2.php?action=Supprimer&id='.$pages['id'].'" /></form> ';
}
echo'<div align="right"><form method="post" action="adminpages2.php?action=Ajouter&id='.$pages['id'].'"><input type="text" name="titre_fr" /><input type="text" name="titre_en" /><input type="text" name="txt_fr" /><input type="text" name="txt_en" />
Position
<select name="ordre">';
for($i=1;$i<=100;$i++)
{
echo'<option value="'.$i.'"';
if($i==$pages['ordre'])
{
echo' selected="selected"';
}
echo'>'.$i.'</option>';
}
echo'</select><input type="submit" name="Ajouter " value="Ajouter une catégorie" /></form>';
?>
</body>
</head>
</html>
Ca ne marche pas encore, pour l'instant il y a une erreur
==>
Notice: Undefined index: idcat in c:\users\dimexbat5\desktop\ectfrance.com\admin\adminpages2.php on line 48
La ligen 48 correspond à cette ligne de code ==>$r_pages= mysql_db_query($db,"SELECT * FROM pages WHERE id_cat='".$_SESSION['idcat']."' ORDER BY ordre ASC");.
Je pense qu'il faut sans doute utiliser un if isset($_SESSION['idcat']) mais j'ai essayé et ça ne marche pas. Peut etre que je le place au mauvais endroit. Si vous avez des idées.Merci.
<?php
session_start(); // (pour utiliser les variables de session)
// connexion a la BD
include("connection.php");
// recuperation de l'id de la categorie
if (isset($_POST['categories']) && $_POST['categories']!='') // vérification si on a bien choisi une des catégories dans la liste déroulante
{
// on met la categorie dans une variable de session
// ce qui permettra de l utiliser par la suite
$_SESSION['idcat'] = mysql_real_escape_string($_POST['categories']);
}
if(isset($_GET['action'])&& $_SESSION['idcat'])
{
switch($_GET['action'] )
{
case 'Supprimer':
$r_pages=mysql_db_query($db,"SELECT * FROM pages WHERE id=".$_GET['id']."");
while($pages = mysql_fetch_assoc($r_pages))
{
echo'Voulez-vous vraiment supprimer la page '.$pages['titre_fr'].'?
<form method="post" action="adminpages2.php?action=Suppression&id='.$pages['id'].'"><input type="submit" value="Suppression" />
<input type="button" value="Annuler" onClick="document.location=\'adminpages2.php\'" /></form>';
}
break;
case 'Suppression':
$suppr=mysql_db_query($db,"DELETE from pages WHERE id='".$_GET['id']."' ");
break;
case 'Ajouter':
$add=mysql_db_query($db,"INSERT INTO pages (titre_fr,titre_en,txt_fr,txt_en,ordre) VALUES ('$_POST[titre_fr]','$_POST[titre_en]','$_POST[txt_fr]','$_POST[txt_en]','$_POST[ordre]' ) ");
break;
case 'Modifier':
echo'<meta http-equiv="Refresh" content="1; url=adminpages2.php">';
$mod = mysql_db_query($db,"UPDATE pages SET titre_fr='$_POST[titre_fr]', titre_en='$_POST[titre_en]', txt_fr='$_POST[txt_fr]', txt_en='$_POST[txt_en]',ordre='$_POST[ordre]' WHERE id='$_POST[id]'");
break;
default: echo"Choisissez un des trois choix";
}
}
$r_pages= mysql_db_query($db,"SELECT * FROM pages WHERE id_cat='".$_SESSION['idcat']."' ORDER BY ordre ASC");
while($pages = mysql_fetch_assoc($r_pages))
{
echo'<form method="post" action="adminpages2.php?action=Modifier"><input type="text" name="titre_fr" value="'.$pages['titre_fr'].'" /><input type="text" name="titre_en" value="'.$pages['titre_en'].'" /><input type="text" name="txt_fr" value="'.$pages['txt_fr'].'" /><input type="text" name="txt_en" value="'.$pages['txt_en'].'" />
Position
<select name="ordre">';
for($i=1;$i<=100;$i++)
{
echo'<option value="'.$i.'"';
if($i==$pages['ordre']) // vérification
{
echo' selected="selected"';
}
echo'>'.$i.'</option>';
}
echo'</select>';
echo'<input type="submit" value="Modifier" /><input type="hidden" name="id" value="'.$pages['id'].'" />';
echo'<input type="button" value="Supprimer" onClick="document.location=\'adminpages2.php?action=Supprimer&id='.$pages['id'].'" /></form> ';
}
echo'<div align="right"><form method="post" action="adminpages2.php?action=Ajouter&id='.$pages['id'].'"><input type="text" name="titre_fr" /><input type="text" name="titre_en" /><input type="text" name="txt_fr" /><input type="text" name="txt_en" />
Position
<select name="ordre">';
for($i=1;$i<=100;$i++)
{
echo'<option value="'.$i.'"';
if($i==$pages['ordre'])
{
echo' selected="selected"';
}
echo'>'.$i.'</option>';
}
echo'</select><input type="submit" name="Ajouter " value="Ajouter une catégorie" /></form>';
?>
</body>
</head>
</html>
Ca ne marche pas encore, pour l'instant il y a une erreur
==>
Notice: Undefined index: idcat in c:\users\dimexbat5\desktop\ectfrance.com\admin\adminpages2.php on line 48
La ligen 48 correspond à cette ligne de code ==>$r_pages= mysql_db_query($db,"SELECT * FROM pages WHERE id_cat='".$_SESSION['idcat']."' ORDER BY ordre ASC");.
Je pense qu'il faut sans doute utiliser un if isset($_SESSION['idcat']) mais j'ai essayé et ça ne marche pas. Peut etre que je le place au mauvais endroit. Si vous avez des idées.Merci.
edit : cf. https://www.php.net/manual/fr/function.addslashes.php qui conseille d'utiliser les fonctions spécifiques à la base de données lorsqu'elles sont disponibles.