Ma page PHP contient un lien permettant de supprimer un datum de table MySQL. Je veux que ce soit tel que, lorsque je clique sur le lien "supprimer", une boîte de confirmation s'affiche et demande "Êtes-vous sûr, vous voulez supprimer?", Avec deux boutons: "oui" et "non" . Lorsque je clique sur oui, je souhaite supprimer les données de la table MySQL et lorsque je clique sur non, rien ne devrait se produire.
<a href="http://stackoverflow.com"
onclick="return confirm('Are you sure?');">My Link</a>
<input name="_delete_" type="submit" value="Delete" onclick="return confirm('Are you sure?')">
Vous devez toujours utiliser un bouton formulaire/publication pour confirmer quelque chose comme ceci. Ne comptez jamais sur Javascript. Lisez ceci pour comprendre pourquoi!
Vous pouvez utiliser JavaScript pour vous inviter:
Trouvé ceci ici - Exemple
<script>
function confirmDelete(delUrl) {
if (confirm("Are you sure you want to delete")) {
document.location = delUrl;
}
}
</script>
<a href="javascript:confirmDelete('delete.page?id=1')">Delete</a>
Autrement
<a href="delete.page?id=1" onclick="return confirm('Are you sure you want to delete?')">Delete</a>
Warning: Ce JavaScript n'empêchera pas la suppression des enregistrements s'ils se contentent de naviguer vers l'URL finale - delete.page?id=1 dans leur navigateur
Ce que je fais habituellement, c’est de créer une page de suppression qui affiche un formulaire de confirmation si la méthode de demande est "GET" et supprime les données si la méthode est "POST" et que l’utilisateur a choisi l’option "Oui".
Ensuite, dans la page avec le lien de suppression, j'ajoute une fonction onclick (ou utilisez simplement le plugin jQuery confirm ) qui utilise AJAX pour poster sur le lien, en ignorant la page de confirmation.
Voici l'idée dans le pseudo-code:
delete.php:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if ($_POST['confirm'] == 'Yes') {
delete_record($_REQUEST['id']); // From GET or POST variables
}
redirect($_POST['referer']);
}
?>
<form action="delete.php" method="post">
Are you sure?
<input type="submit" name="confirm" value="Yes">
<input type="submit" name="confirm" value="No">
<input type="hidden" name="id" value="<?php echo $_GET['id']; ?>">
<input type="hidden" name="referer" value="<?php echo $_SERVER['HTTP_REFERER']; ?>">
</form>
Page avec lien de suppression:
<script>
function confirmDelete(link) {
if (confirm("Are you sure?")) {
doAjax(link.href, "POST"); // doAjax needs to send the "confirm" field
}
return false;
}
</script>
<a href="delete.php?id=1234" onclick="return confirmDelete(this);">Delete record</a>
Essaye ça:
<td>
<a onclick="return confirm(\'Are you sure?\');" href="'.base_url('category/delete_category/'.$row->category_id).'" class="btn btn-danger btn-sm"><i class="fa fa-trash"></i> Delete Coupon</a>
</td>
Je cherchais également un moyen de le faire et je l'ai compris comme ceci en utilisant des formulaires et l'attribut formaction:
<input type="submit" name="del_something" formaction="<addresstothispage>" value="delete" />
<?php if(isset($_POST['del_something'])) print '<div>Are you sure? <input type="submit" name="del_confirm" value="yes!" formaction="action.php" />
<input type="submit" name="del_no" value="no!" formaction="<addresstothispage>" />';?>
action.php vérifierait isset ($ _ POST ['del_confirm']) et appellerait le script php correspondant (pour les actions de base de données ou autre). Voilà, pas de javascript nécessaire. À l'aide de l'attribut formaction, le bouton de suppression peut faire partie de n'importe quel formulaire et appeler une action de formulaire différente (par exemple, renvoyer à la même page, mais avec le bouton défini).
Si le bouton a été appuyé, les boutons de confirmation s'afficheront.
onclick="return confirm('Log Out?')? window.open('?user=logout','_self'): void(0);"
Est-ce que ce script et après je pensais aller consulter Internet aussi .
Oui, c’est une vieille menace, mais comme il ne semble pas y avoir de version similaire, j’ai pensé que je contribuerais .
Le moyen le plus simple et le plus simple fonctionne sur tous les navigateurs avec/dans n'importe quel élément ou champ.
Vous pouvez remplacer window.open
par une autre commande à exécuter lorsque la confirmation est TRUE
, identique à void(0)
si la conformation est NULL
ou annulée.
<input type="submit" name="submit" value="submit" onclick="return confirm('Are you sure?');"/>
Vous pouvez également effectuer cette action sur Button!
Le meilleur moyen que j'ai trouvé est ici.
CODE HTML
<a href="delete.cfm" onclick="return confirm('Are you sure you want to delete?');">Delete</a>
AJOUTEZ CETTE SECTION À HEAD SECTION
$(document).ready(function() {
$('a[data-confirm]').click(function(ev) {
var href = $(this).attr('href');
if (!$('#dataConfirmModal').length) {
$('body').append('<div id="dataConfirmModal" class="modal" role="dialog" aria-labelledby="dataConfirmLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="dataConfirmLabel">Please Confirm</h3></div><div class="modal-body"></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Cancel</button><a class="btn btn-primary" id="dataConfirmOK">OK</a></div></div>');
}
$('#dataConfirmModal').find('.modal-body').text($(this).attr('data-confirm'));
$('#dataConfirmOK').attr('href', href);
$('#dataConfirmModal').modal({show:true});
return false;
});
});
Vous devez ajouter Jquery et Bootstrap pour que cela fonctionne.
Pour ce faire, PHP utiliserait un système de dialogue dans php.Par exemple, GTKDialogs: http://www.kksou.com/php-gtk2/articles/setup-a-dialog-box --- Partie-2 --- simple-oui-non-dialog.php La méthode javacript est probablement un peu plus facile, mais rappelez-vous que, si javascript est désactivé, cela ne fonctionne pas (sauf si vous cochez javascript pour être Cela peut être avec un gestionnaire onclick comme tsvanharen posté, ou avec une simple boîte de dialogue dans la page au lieu d’un pop-up persistant.
<a onClick="$('deletefromtable').show();"></a>
<div id="deletefromtable" style="display:none;">
Do you really want to do this?<br/>
<a href="deleteit.php">Yes</a>|<a onClick="$('deletefromtable').hide();">No</a>
</div>
J'utilise prototype (d'où la balise $ () et le show ()/hide ()) pour cela. mais vous pouvez facilement le changer pour qu'il fonctionne sans prototype:
<a onClick='document.getElementById("deletefromtable").style.display = "block";' href="#">click here to delete</a>
<div id="deletefromtable" style="display:none;">
Do you really want to do this?<br/>
<a href="deleteit.php">Yes</a>|<a onClick='document.getElementById("deletefromtable").style.display = "none";' href="#">No</a>
</div>
Encore une fois, cela ne fonctionne pas sans JavaScript, mais presque aucune option ne fonctionne.
Si vous supprimez quelque chose, vous devez toujours utiliser POST et non GET. L'utilisation de confirm () est donc une mauvaise idée. Ce que je fais dans votre cas est d’utiliser un popup modal comme jqModal et d’afficher un formulaire avec des boutons Oui/Non dans le popup.