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.
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?
Vous pouvez utiliser JavaScript. Mettez le code en ligne, dans une fonction ou utilisez jQuery.
En ligne:
<a href="deletelink" onclick="return confirm('Are you sure?')">Delete</a>
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.
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>
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();
}
}
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. .
<?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>
Vous pouvez le faire avec un message confirm()
en utilisant Javascript.
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>';