Friday, May 10, 2024
 Popular · Latest · Hot · Upcoming
88
rated 0 times [  95] [ 7]  / answers: 1 / hits: 68649  / 7 Years ago, mon, september 4, 2017, 12:00:00

Hi I am new in using sweet alert js to make my alert box more fancy. I am using the normal javascript alert confirmation to delete a specific data in my table. However when I try to run a sweet alert confirmation before deleting it deletes the file without the confirmation popping up.



Here is the code in my JS below.



<script>
archiveFunction() {
swal({
title: Are you sure?,
text: But you will still be able to retrieve this file.,
type: warning,
showCancelButton: true,
confirmButtonColor: #DD6B55,
confirmButtonText: Yes, archive it!,
cancelButtonText: No, cancel please!,
closeOnConfirm: false,
closeOnCancel: false
},
function(isConfirm){
if (isConfirm) {
swal(Deleted!, Your imaginary file has been archived., success);
} else {
swal(Cancelled, Your imaginary file is safe :), error);
}
});
}
</script>


this is my html form below.



<form action=<?php echo $_SERVER['PHP_SELF']; ?> method=POST>
<input type=hidden name=p_id id=p_id value=<?php echo $rows['p_id']; ?>>
<button class=btn btn-danger type=submit name=archive onclick=archiveFunction()>
<i class=fa fa-archive></i>
Archive
</button>
</form>


and here is the code in php.



<?php

include('../config.php');

if(isset($_POST['archive']))
{
$p_id = $_REQUEST['p_id'];
// sql to delete a record
$sqli = UPDATE students SET archive = 2 WHERE p_id=$p_id;

if ($conn->query($sqli) === TRUE) {
echo swal('Archived!', 'Click ok to see!', 'success');
} else {
echo Error Archiving record: . $conn->error;
}

$conn->close();
}
?>


what I want to happen is to confirm the sweet alert confirmation before deleting the specific data.


More From » php

 Answers
3

As other mentioned, your button click is submitting the form to the specified action and you are not able to chose your option in the alert. So you should prevent the form submit by using event.preventDefault() and submitting the form only when user press yes.





function archiveFunction() {
event.preventDefault(); // prevent form submit
var form = event.target.form; // storing the form
swal({
title: Are you sure?,
text: But you will still be able to retrieve this file.,
type: warning,
showCancelButton: true,
confirmButtonColor: #DD6B55,
confirmButtonText: Yes, archive it!,
cancelButtonText: No, cancel please!,
closeOnConfirm: false,
closeOnCancel: false
},
function(isConfirm){
if (isConfirm) {
form.submit(); // submitting the form when user press yes
} else {
swal(Cancelled, Your imaginary file is safe :), error);
}
});
}

<script src=https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js></script>
<link rel=stylesheet type=text/css href=https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css>
<form action=abc method=POST>
<input type=hidden name=p_id id=p_id value=<?php echo $rows['p_id']; ?>>
<button class=btn btn-danger name=archive type=submit onclick=archiveFunction()>
<i class=fa fa-archive></i>
Archive
</button>
</form>




[#56587] Thursday, August 31, 2017, 7 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
austynp

Total Points: 505
Total Questions: 118
Total Answers: 106

Location: Tajikistan
Member since Sun, Aug 29, 2021
3 Years ago
austynp questions
;