0
votes

Supprimer la confirmation avec Sweet Alert 2

Je veux supprimer un enregistrement DB avec PHP. Avant que je sumbe un formulaire, je veux une notification d'une douce alerte (2) avec les boutons "Oui du non".

Lorsque "oui", je veux soumettre le formulaire et activer mon code PHP. P>

Problème est que cela ne fonctionnera pas. Après avoir cliqué sur "Oui", ma page est rafraîchissante et mon code PHP ne démarre pas. P>

<form action="" method="POST">
    <div class="right gap-items-2">
        <button class="btn btn-error" name="archive" type="submit" onclick="archiveFunction()">archive</button>
    </div>
</form>


<script>
    function archiveFunction() {
        event.preventDefault(); // prevent form submit
        var form = event.target.form; // storing the form
        Swal.fire({
            title: 'Are you sure?',
            text: "You won't be able to revert this!",
            type: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, delete it!'
        }).then((result) => {
            if (result.value) {
                form.submit();
            }
        })
    }
</script>


if (isset($_POST['archive'])){

$message = "test";
echo "<script type='text/javascript'>alert('$message');</script>";

}


0 commentaires

4 Réponses :


2
votes

Modifiez le bouton de formulaire à l'aide d'un identifiant comme celui-ci:

<script>
    $('#submitForm').on('click',function(e){
        e.preventDefault();
        var form = $(this).parents('form');
        Swal.fire({
            title: 'Are you sure?',
            text: "You won't be able to revert this!",
            type: 'warning',
            showCancelButton: true,
            confirmButtonColor: '#3085d6',
            cancelButtonColor: '#d33',
            confirmButtonText: 'Yes, delete it!'
        }).then((result) => {
            if (result.value) {

                form.submit();
            }
        });
    });
</script>


2 commentaires

Je l'ai appliqué mais malheureusement ça ne marche pas. Il ne veut pas atteindre mon PHP.


Quel est le chemin de fichier PHP cible? Si vous n'avez pas spécifié l'adresse, il publiera les données de formulaire à l'adresse actuelle.



0
votes

<link href="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.css" rel="stylesheet"/>
<script src="https://cdnjs.cloudflare.com/ajax/libs/sweetalert/1.1.3/sweetalert.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>

<form method="POST" id="deleteform">
        <input type="hidden" name="amccode" id="amccode" value="<?php echo $row['amccode']; ?>">
        <button class="btn btn-danger" id="deleteamc" name="delete" type="submit">
            <i class="fa fa-minus"></i>
                Delete
        </button>
</form>
<!-- USER CONFIRM DELETE THEN FIRE DELETE FUNCTION -->

<?php

if(isset($_REQUEST['delete']))
		 {
			$amccode=$_POST['amccode'];
			
	 
		 echo "WRITE DELETE SQL CODE";
		 exit;
	
					
			
			");
?>
			 
			 <script src="../source/alert/dist/sweetalert.min.js"></script>
<link rel="stylesheet" type="text/css" href="../source/alert/dist/sweetalert.css">
			 
<script type="text/javascript">
function SuccessSaved (){
	
        swal({ 
              title: "Success",
              text:  "All Records Successfully Deleted. Customer ID <?php echo $amccode ?>",
              type: "success",
			  
        },
             function(){
               
			window.location.href = "<?php echo BASE_URL; ?>/admin/amcall.php";
        });
}

</script>
        <script type="text/javascript" >
        $( document ).ready(function() {
			//console.log( "ready!" );
			SuccessSaved();
		});
		
		
</script>

		<?php	 
		 }


?>		


0 commentaires

0
votes

Essayez celui-ci, je l'ai utilisé dans Laravel, il fonctionne xxx

et dans les scripts: xxx


0 commentaires

2
votes
##php/file:##
     <?php
                $no = 1;
                $sql = "SELECT * FROM office_info";
                $query = $conn->query($sql);
                while ($rows = $query->fetch_assoc()) {
                    echo
                        "<tr>
                                    <td>" . $rows['id'] . "</td>
                                    <td>" . $rows['office_name'] . "</td>
                                    <td>" . $rows['office_type'] . "</td>
                                    <td>" . $rows['office_address'] . "</td>
                                    <td>" . $rows['office_cont_person'] . "</td>
                                    <td>" . $rows['office_con_mobile_no'] . "</td>
                                    <td>" . $rows['office_start_dt'] . "</td>
                                    <td>" . $rows['office_end_dt'] . "</td>
                                    <td>
                                    <a href='office_info_edit.php?id=" . $rows['id'] . "' target='_blank' class='btn btn-success btn-sm><span class='glyphicon glyphicon-edit'></span>Edit</a>
                                    <a href='office_info_delete.php?id=" . $rows['id'] . "' target='_blank' class='btn btn-success btn-sm><span class='glyphicon glyphicon-edit'></span>del</a>
                                    <a data-id='" . $rows['id'] . "' id='delete_id' class='btn btn-danger btn-sm'<span class='glyphicon glyphicon-trash' href='javascript:void(0)'></span>delete</a>
                                </td>
                                </tr>";
                }
                ?>
##script##
    <script>
       $(document).ready(function() {
            $(document).on('click', '#delete_id', function(e) {
                var id = $(this).data('id');
                SwalDelete(id);
                e.preventDefault();
            });
        });

        function SwalDelete(id) {
            Swal.fire({
                title: 'Are you sure?',
                text: "It will be deleted permanently!",
                type: 'warning',
                showCancelButton: true,
                confirmButtonColor: '#3085d6',
                cancelButtonColor: '#d33',
                confirmButtonText: 'Yes, delete it!',
                showLoaderOnConfirm: true,
                preConfirm: function() {
                    return new Promise(function(resolve) {
                        $.ajax({
                                url: 'office_info_delete.php',
                                type: 'POST',
                                data: 'id=' + id,
                                dataType: 'json'
                            })
                            .done(function(response) {
                                Swal.fire('Deleted!', 'Your file has been deleted.', 'success')
                            })
                            .fail(function() {
                                Swal.fire('Oops...', 'Something went wrong with ajax !', 'error')
                            });
                    });
                },
            });
        }
    </script>
    **office_info_delete.php**
    if (isset($_POST['id'])) {
        require '../database.php';
        $id = intval($_POST['id']);
        $deleteQuery = "delete from `office_info` where id='$id' limit 1";
        $conn->query($deleteQuery);
        if ($conn->affected_rows == 1) {
            $response['status']  = 'success';
            $response['message'] = 'Product Deleted Successfully ...';
        } else {
            $response['status']  = 'error';
            $response['message'] = 'Unable to delete product ...';
        }
        echo json_encode($response);
    }

2 commentaires

Veuillez considérer Modifier Ing de réponse pour ajouter des explications et des détails. Bien que cela puisse répondre à la question, il suffit d'ajouter que certains CODE n'entrent pas que les membres de la communauté op ou futurs comprennent la question ou la solution.


Oui je vais ajouter des détails