web-dev-qa-db-fra.com

Bouton de confirmation avant d'exécuter la suppression de la routine du site Web

J'ai une page sur mon site Web qui est créée dynamiquement avec les informations d'une base de données SQL. En plus des données affichées, un lien de suppression est également créé pour chaque enregistrement lié à un fichier php appelé deleteRecord.php qui supprime cet enregistrement de la base de données.

Example of data listings

Est-il possible d'incorporer un message de confirmation de sorte que, lorsque l'utilisateur clique sur le lien Supprimer, le fichier deleteRecord.php ne sera exécuté que si la réponse est Oui?

6
RGriffiths

Vous pouvez utiliser JavaScript. Mettez le code en ligne, dans une fonction ou utilisez jQuery.

  1. En ligne:

    <a href="deletelink" onclick="return confirm('Are you sure?')">Delete</a>
    
  2. Dans une fonction:

    <a href="deletelink" onclick="return checkDelete()">Delete</a>
    

    puis mettez ceci dans <head>:

    <script language="JavaScript" type="text/javascript">
    function checkDelete(){
        return confirm('Are you sure?');
    }
    </script>
    

    Celui-ci a plus de travail, mais moins de taille de fichier si la liste est longue.

  3. Avec jQuery:

    <a href="deletelink" class="delete">Delete</a>
    

    Et mettez ceci dans <head>:

    <script src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
    <script language="JavaScript" type="text/javascript">
    $(document).ready(function(){
        $("a.delete").click(function(e){
            if(!confirm('Are you sure?')){
                e.preventDefault();
                return false;
            }
            return true;
        });
    });
    </script>
    
35
Pietu1998

Appelez cette fonction en cliquant sur le bouton

/*pass whatever you want instead of id */
function doConfirm(id) {
    var ok = confirm("Are you sure to Delete?");
    if (ok) {
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp = new XMLHttpRequest();
        } else {
            // code for IE6, IE5
            xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }

        xmlhttp.onreadystatechange = function() {
            if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
                window.location = "create_dealer.php";
            }
        }

        xmlhttp.open("GET", "delete_dealer.php?id=" + id);
        // file name where delete code is written
        xmlhttp.send();
    }
}
2
LOKESH

Vous avez 2 options

1) Utilisez javascript pour confirmer la suppression (utilisez le gestionnaire d'événements onsubmit). Toutefois, si JS est désactivé sur le client, vous avez des problèmes.

2) Utilisez PHP pour renvoyer un message de confirmation, ainsi que le contenu du formulaire (masqué si vous le souhaitez) ainsi qu'un bouton d'envoi appelé "confirmation", dans PHP, vérifiez si $_POST["confirmation"] est défini. .

2
Zack Newsham

<?php 
$con = mysqli_connect("localhost","root","root","EmpDB") or die(mysqli_error($con));
 if(isset($_POST[add]))
 {
	$sno = mysqli_real_escape_string($con,$_POST[sno]);
   $name = mysqli_real_escape_string($con,$_POST[sname]);
   $course = mysqli_real_escape_string($con,$_POST[course]);
 
   $query = "insert into students(sno,name,course) values($sno,'$name','$course')";
   //echo $query;
   $result = mysqli_query($con,$query);
   printf ("New Record has id %d.\n", mysqli_insert_id($con));
  mysqli_close($con);
   
 }	 
?>
  
<html>
<head>
<title>mysql_insert_id Example</title>
</head>
<body>
<form action="" method="POST">
Enter S.NO: <input type="text" name="sno"/><br/>
Enter Student Name: <input type="text" name="sname"/><br/>
Enter Course: <input type="text" name="course"/><br/>
<input type="submit" name="add" value="Add Student"/>
</form>
</body>
</html>

0
vikram

Vous pouvez le faire avec un message confirm() en utilisant Javascript.

0
Azuken

Essaye celui-là :

 <script type="text/javascript">
      var baseUrl='http://example.com';
      function ConfirmDelete()
      {
            if (confirm("Delete Account?"))
                 location.href=baseUrl+'/deleteRecord.php';
      }
  </script>


  echo '<a type="button" onclick="ConfirmDelete()">DELETE ACCOUNT</a>';
0
Charaf JRA