Confirmation avant suppression de données
Résolu
violette001
-
bob -
bob -
Bonjour,
Je cheche un moyen pour demander une confirmation avant de supprimer définitivement des données via un lien.
Voici un bout de code si cela peut aider...
...
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
...
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
...
J'ai essayé avec un onclick (voir ci-dessous) mais je n'ai pas de demande de confirmation, les données sont directement supprimées.
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '" onclick="if(window.confirm('Etes vous sur ?')){return true;}else{return false;}">'; ?>Supprimer</a></td>
Quelqu'un a-t-il une idée ?
Merci d'avance !
Je cheche un moyen pour demander une confirmation avant de supprimer définitivement des données via un lien.
Voici un bout de code si cela peut aider...
...
if (isset($_GET['supprimer_news'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
...
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '">'; ?>Supprimer</a></td>
...
J'ai essayé avec un onclick (voir ci-dessous) mais je n'ai pas de demande de confirmation, les données sont directement supprimées.
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '" onclick="if(window.confirm('Etes vous sur ?')){return true;}else{return false;}">'; ?>Supprimer</a></td>
Quelqu'un a-t-il une idée ?
Merci d'avance !
A voir également:
- Message de confirmation de suppression exemple
- Forcer suppression fichier - Guide
- Url exemple - Guide
- Recuperer message whatsapp supprimé - Guide
- Confirmation de lecture whatsapp - Guide
- Confirmation de lecture gmail - Guide
7 réponses
Ah oui , tu créés une page ton_script_de_suppression.php avec
<?php
f (isset($_GET['id'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
<?php
f (isset($_GET['id'])) // Si on demande de supprimer une news
{
// Alors on supprime la news correspondante
// On protège la variable "id_news" pour éviter une faille SQL
$_GET['supprimer_news'] = addslashes($_GET['supprimer_news']);
mysql_query('DELETE FROM news WHERE id=\'' . $_GET['supprimer_news'] . '\'');
}
?>
Je vois 2 possibilités :
- 1. tu utilises une page 'tampon' de confirmation avant la suppression
- 2. tu utilises le onclick pour déclencher la suppression avec ajax -> tu mets le code de suppression dans une page à part
- 1. tu utilises une page 'tampon' de confirmation avant la suppression
- 2. tu utilises le onclick pour déclencher la suppression avec ajax -> tu mets le code de suppression dans une page à part
C'est bien ça mon problème, c'est que j'aimerais rester sur la même page sur laquelle sont reprises toutes mes données sous forme de listing avec possibilité de modifier ou de supprimer chaque donnée.
J'aimerais utiliser le onclick mais dans ton exemple tu cites Ajax, malheureusement, je ne connais pas du tout... Je pensais le tenter en Javascript (c'est l'exemple que je donne dans mon premier post) mais cela ne fonctionne pas...
Je continue à chercher de mon côté mais votre aide me sera très précieuse... merci !
J'aimerais utiliser le onclick mais dans ton exemple tu cites Ajax, malheureusement, je ne connais pas du tout... Je pensais le tenter en Javascript (c'est l'exemple que je donne dans mon premier post) mais cela ne fonctionne pas...
Je continue à chercher de mon côté mais votre aide me sera très précieuse... merci !
alors fait : un truc du genre
<a href="" onClick="window.alert('hello world! ')">test message</a>
<a href="" onClick="window.alert('hello world! ')">test message</a>
Non, toujours rien. Quand je clique sur supprimer, les données sont directement supprimées...
Voici ce que j'ai mis :
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '" onclick="window.alert('Hello world !')">'; ?>Supprimer</a></td>
Dois-je mettre autre chose ailleurs dans ma page ?
Voici ce que j'ai mis :
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '" onclick="window.alert('Hello world !')">'; ?>Supprimer</a></td>
Dois-je mettre autre chose ailleurs dans ma page ?
Aucune différence entre :
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '" onclick="return confirm('test?');">'; ?>Supprimer</a></td>
et :
<td><a href="liste_news.php?supprimer_news=<?php echo $donnees['id'] ?>"onclick="return confirm('test?');">supprimer</a></td>
Les données sont supprimées directement et aucun message n'apparait...
<td><?php echo '<a href="liste_news.php?supprimer_news=' . $donnees['id'] . '" onclick="return confirm('test?');">'; ?>Supprimer</a></td>
et :
<td><a href="liste_news.php?supprimer_news=<?php echo $donnees['id'] ?>"onclick="return confirm('test?');">supprimer</a></td>
Les données sont supprimées directement et aucun message n'apparait...
Ajax te permet d'appeler un script sur une autre page pour modifier le contenu de la page actuelle
Dans ton cas je vois un <div> bien identifié, par exemple <div id="d_xxx">, avec dedans ton lien pour supprimer : <a href="" onclick="effacer(xxx)"> effacer l'id xxx</a>
les xxx sont toujours le même id du même objet à supprimer
Dans ton <head></head> tu places ça :
function effacer(id) {
if (confirm("Effacer" + id + " ?"))
{
var url;
url = "http://ton_script_de_suppression.php?id=" + id;
var httpRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType) {
httpRequest.overrideMimeType('text/xml');
// Voir la note ci-dessous à propos de cette ligne
}
}
else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!httpRequest) {
//alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
httpRequest.onreadystatechange = function() { effacer2(httpRequest, id); };
httpRequest.open('GET', url, true);
httpRequest.send(null);
}
}
function effacer2(httpRequest, id) {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
document.getElementById('div_'+id).value = httpRequest.responseText;
}
}
}
Dans ton cas je vois un <div> bien identifié, par exemple <div id="d_xxx">, avec dedans ton lien pour supprimer : <a href="" onclick="effacer(xxx)"> effacer l'id xxx</a>
les xxx sont toujours le même id du même objet à supprimer
Dans ton <head></head> tu places ça :
function effacer(id) {
if (confirm("Effacer" + id + " ?"))
{
var url;
url = "http://ton_script_de_suppression.php?id=" + id;
var httpRequest = false;
if (window.XMLHttpRequest) { // Mozilla, Safari,...
httpRequest = new XMLHttpRequest();
if (httpRequest.overrideMimeType) {
httpRequest.overrideMimeType('text/xml');
// Voir la note ci-dessous à propos de cette ligne
}
}
else if (window.ActiveXObject) { // IE
try {
httpRequest = new ActiveXObject("Msxml2.XMLHTTP");
}
catch (e) {
try {
httpRequest = new ActiveXObject("Microsoft.XMLHTTP");
}
catch (e) {}
}
}
if (!httpRequest) {
//alert('Abandon :( Impossible de créer une instance XMLHTTP');
return false;
}
httpRequest.onreadystatechange = function() { effacer2(httpRequest, id); };
httpRequest.open('GET', url, true);
httpRequest.send(null);
}
}
function effacer2(httpRequest, id) {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
document.getElementById('div_'+id).value = httpRequest.responseText;
}
}
}
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Re (je veux aller trop vite) :
function effacer2(httpRequest, id) {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
document.getElementById('div_'+id).innertHtml = '';
}
}
}
au lieu de ce qu j'ai mis au dessus
function effacer2(httpRequest, id) {
if (httpRequest.readyState == 4) {
if (httpRequest.status == 200) {
document.getElementById('div_'+id).innertHtml = '';
}
}
}
au lieu de ce qu j'ai mis au dessus