Moja strona PHP zawiera link do usunięcia jednego punktu odniesienia bazy danych MySQL. Chcę, aby było tak, że po kliknięciu linku "usuń" powinno pojawić się okno z potwierdzeniem i powinno zostać wyświetlone pytanie "czy jesteś pewien, że chcesz usunąć?", Z dwoma przyciskami: "tak" i "nie" . Kiedy klikam "tak", chcę usunąć dane tabeli MySQL, a gdy kliknę "nie", nic nie powinno się wydarzyć.PHP: Pokaż okno dialogowe potwierdzenia Yes/no
Odpowiedz
<a href="http://stackoverflow.com"
onclick="return confirm('Are you sure?');">My Link</a>
Można użyć JavaScript do monit:
Znalazłem to tutaj - Example
<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>
Innym sposobem
<a href="delete.page?id=1" onclick="return confirm('Are you sure you want to delete?')">Delete</a>
Warning: ta JavaScript nie zatrzyma rekordy z usuniętych, jeśli tylko n avigate do końcowego URL - delete.page?id=1 w przeglądarce
Sposób PHP robić to będzie za pomocą systemu dialogowego wewnątrz php.for przykład GTKDialogs: http://www.kksou.com/php-gtk2/articles/setup-a-dialog-box---Part-2---simple-yes-no-dialog.php javacript sposobem jest prawdopodobnie nieco łatwiejsze , ale pamiętaj, że gdy javascript jest wyłączony, to nie działa (chyba, że zaznaczysz javascript aby był włączony, a następnie dodasz to !?) Może to być z handler'em onclick, takim jak tsvanharen, lub z prostym oknem dialogowym na stronie zamiast dokuczliwego wyskakującego okienka.
<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>
Używam prototypu (stąd znacznik $() i show()/ukryj()). ale możesz łatwo zmienić go, aby działał bez prototypu:
<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>
To znowu nie działa bez javascript, ale prawie nie ma opcji.
Nawet jeśli phpgtk został zainstalowany na serwerze (co jest nonsensem, ponieważ wymaga interfejsu graficznego, który nigdy nie jest instalowany na serwerach z systemem Linux), otwierałoby to okno dialogowe na serwerze, a nie w przeglądarce ani na maszyna użytkownika: nie możesz, z serwera, otworzyć okna GTK na kliencie –
Powinieneś zawsze używać przycisku formularza/post, aby potwierdzić coś takiego. Nigdy nie polegaj na JavaScript. Przeczytaj this, aby zrozumieć, dlaczego!
Okno dialogowe potwierdzenia nie ma nic wspólnego z problemem w twojej historii. Okno dialogowe potwierdzenia to funkcja użyteczności, która zapobiega przypadkowemu kliknięciu przycisku usuwania. W twoim linku używali javascript do uwierzytelniania, co jest naprawdę głupią rzeczą. –
Jeśli usuwasz coś, powinieneś zawsze używać POST, a nie GET, więc używanie metody confirm() jest złym pomysłem. Co robię w twojej sytuacji, użyj modalnego wyskakującego okienka jak jqModal i wyświetl formularz z przyciskami tak/nie wewnątrz wyskakującego okienka.
Jak "potwierdzenie()" uniemożliwia używanie POST? –
Zazwyczaj tworzę stronę usuwania, która pokazuje formularz potwierdzenia, jeśli metoda żądania to "GET" i usuwa dane, jeśli metoda była "POST", a użytkownik wybrał opcję "Tak".
Następnie na stronie z linkiem do usuwania dodam funkcję onclick (lub po prostu użyj jQuery confirm plugin), która wykorzystuje AJAX do publikowania linku, z pominięciem strony z potwierdzeniem.
Oto pomysł w pseudo kod:
usunąć.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>
Strona z usuwania linku:
<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>
<input name="_delete_" type="submit" value="Delete" onclick="return confirm('Are you sure?')">
To najprostsza odpowiedź, dzięki. –
onclick="return confirm('Log Out?')? window.open('?user=logout','_self'): void(0);"
Czy ten skrypt, a potem myślałam idę sprawdzić internet też.
Tak, to jest stare zagrożenie, ale ponieważ wydaje się, że nie ma podobnej wersji, myślałem, że przyczynię się do tego.
Najprostszy sposób działa na wszystkich przeglądarkach z/w dowolnym elemencie lub polu.
można zmienić window.open
do jakiegokolwiek innego polecenia do uruchomienia gdy potwierdzenie jest TRUE
, samo z void(0)
jeśli konformacja jest NULL
lub anulowane.
Najlepszy sposób, jaki znalazłem, jest tutaj.
kod HTML
<a href="delete.cfm" onclick="return confirm('Are you sure you want to delete?');">Delete</a>
dodać do HEAD SEKCJI
$(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;
});
});
Należy dodać jQuery i Bootstrap to zadziałało.
<input type="submit" name="submit" value="submit" onclick="return confirm('Are you sure?');"/>
możesz wykonać tę akcję również na przycisku!
- 1. Okno dialogowe potwierdzenia GWT
- 2. Okno dialogowe potwierdzenia priorytetów znika niemal natychmiast
- 3. Okno dialogowe potwierdzenia SMS dla Androida
- 4. Okno dialogowe potwierdzenia javascript przed zamknięciem okna przeglądarki
- 5. Pokaż okno dialogowe drukowania przed wydrukowaniem
- 6. Pokaż okno dialogowe alertu w rozszerzeniu chrome
- 7. okno dialogowe z przyciskiem radiowym i przycisk potwierdzenia
- 8. Czy w Windows Forms jest wbudowane okno dialogowe potwierdzenia?
- 9. Okno dialogowe potwierdzenia w środowisku wykonawczym w asp.net
- 10. howto utworzyć okno dialogowe potwierdzenia w Windows Phone 7?
- 11. Potwierdź okno dialogowe po zamknięciu przeglądarki?
- 12. Okno potwierdzenia jquery
- 13. Okno dialogowe Otwórz/Przeglądaj w php/javascript?
- 14. C#: Pokaż okno dialogowe na wątku UI z innego wątku
- 15. Wix: pokaż niestandardowe okno dialogowe, jeśli została znaleziona poprzednia wersja:
- 16. Potwierdź okno dialogowe w angularjs
- 17. Android: Okno dialogowe/okno dialogowe operacji niespodziewanie znika
- 18. Animować niestandardowe okno dialogowe
- 19. Czasowe okno dialogowe niemodalne
- 20. Typ/okno dialogowe WPF?
- 21. Okno dialogowe otwierania pliku
- 22. Okno dialogowe debugowania XCode
- 23. Pobierz okno dialogowe pliku
- 24. Okno dialogowe alertu WP7
- 25. okno dialogowe blendera wejściowego
- 26. Okno dialogowe Primefaces + commandButton
- 27. Wyszukaj okno dialogowe folderu
- 28. Android niestandardowe okno dialogowe
- 29. Okno dialogowe logowania PyQt
- 30. Okno dialogowe jquery ui jako potwierdzenie
Gdzie jest dokładnie twój problem? – Bombe
Podpowiedź: Nagłówek