Trang PHP của tôi có liên kết để xóa một bảng dữ liệu MySQL. Tôi muốn nó được như vậy mà khi tôi nhấp vào liên kết 'xóa' một hộp xác nhận sẽ xuất hiện và nó sẽ hỏi "bạn có chắc chắn, bạn muốn xóa?", Với hai nút: 'có' và 'không' . Khi tôi nhấp vào có, tôi muốn xóa dữ liệu của bảng MySQL và khi tôi nhấp vào không, không có gì xảy ra.PHP: Hiển thị hộp thoại có/không có xác nhận
Trả lời
<a href="http://stackoverflow.com"
onclick="return confirm('Are you sure?');">My Link</a>
cách đơn giản và hiệu quả nhất để thực hiện việc này, hoạt động như sự quyến rũ !, cảm ơn. – Bhimbim
Đã được làm việc trên Yii-framework, và bằng cách nào đó nhìn thấy điều này đặt htis cách làm cho tôi nhận ra nó trên yii quá, ''options' => mảng ('onclick' => 'return xác nhận (" Bạn có chắc chắn? ");') ' – Gjordis
Bạn có thể sử dụng JavaScript để nhắc bạn:
Các mặt hàng này ở đây - 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>
Một cách khác
<a href="delete.page?id=1" onclick="return confirm('Are you sure you want to delete?')">Delete</a>
Warning: JavaScript này sẽ không dừng lại hồ sơ bị xóa nếu họ chỉ n iều hướng tới url thức - delete.page?id=1 trong trình duyệt của họ
Cách PHP để làm điều này sẽ được sử dụng một hệ thống hộp thoại bên php.for dụ GTKDialogs: http://www.kksou.com/php-gtk2/articles/setup-a-dialog-box---Part-2---simple-yes-no-dialog.php Cách javacript có lẽ là một chút dễ dàng hơn , nhưng hãy nhớ khi javascript được tắt, điều này không hoạt động (trừ khi bạn kiểm tra javascript để được kích hoạt và sau đó thêm này !?) Điều này có thể với một handler onclick như tsvanharen được đăng, hoặc với một hộp thoại văn bản đơn giản bên trong trang thay vì một cửa sổ bật lên dai dẳng.
<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>
Tôi sử dụng mẫu thử nghiệm (do đó thẻ $() và chương trình()/ẩn()) cho nó. nhưng bạn có thể dễ dàng thay đổi nó để hoạt động mà không cần mẫu thử nghiệm:
<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>
Một lần nữa, điều này không hoạt động mà không có javascript, nhưng hầu như không có tùy chọn.
Thậm chí nếu phpgtk được cài đặt trên máy chủ (điều này là vô nghĩa, vì nó yêu cầu giao diện đồ họa, không bao giờ được cài đặt trên máy chủ web chạy Linux), nó sẽ mở hộp thoại đó trên máy chủ chứ không phải bên trong trình duyệt hay trên máy của người dùng: bạn không thể, từ máy chủ, mở một cửa sổ GTK trên máy khách –
Bạn nên luôn sử dụng nút biểu mẫu/bài đăng để xác nhận điều gì đó tương tự. Không bao giờ dựa vào Javascript. Đọc this để hiểu tại sao!
Một hộp thoại xác nhận không liên quan gì đến vấn đề trong câu chuyện của bạn. Hộp thoại xác nhận là tính năng hữu ích để ngăn người dùng nhấp vào nút xóa một cách tình cờ. Trong liên kết của bạn, họ đã sử dụng javascript để xác thực thực sự là điều ngu ngốc để làm .. –
Nếu bạn đang xóa nội dung nào đó, bạn phải luôn sử dụng POST chứ không phải GET, vì vậy việc sử dụng xác nhận() là một ý tưởng tồi. Những gì tôi làm trong trường hợp của bạn là sử dụng cửa sổ bật lên phương thức như jqModal và hiển thị biểu mẫu có các nút có/không bên trong cửa sổ bật lên.
cách 'confirm()' ngăn bạn sử dụng POST? –
Điều tôi thường làm là tạo trang xóa hiển thị biểu mẫu xác nhận nếu phương thức yêu cầu là "NHẬN" và xóa dữ liệu nếu phương thức là "POST" và người dùng đã chọn tùy chọn "Có".
Sau đó, trong trang có liên kết xóa, tôi thêm chức năng onclick (hoặc chỉ sử dụng jQuery confirm plugin) sử dụng AJAX để đăng lên liên kết, bỏ qua trang xác nhận.
Đây là ý tưởng trong mã giả:
xóa.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>
trang với liên kết xóa:
<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?')">
Đây là câu trả lời đơn giản nhất, cảm ơn. –
onclick="return confirm('Log Out?')? window.open('?user=logout','_self'): void(0);"
Did kịch bản này và sau đó tôi tought tôi đi kiểm tra internet quá.
Vâng đây là một mối đe dọa cũ nhưng có vẻ như không có bất kỳ phiên bản tương tự như tôi nghĩ tôi sẽ đóng góp.
Dễ nhất & cách đơn giản nhất hoạt động trên tất cả các trình duyệt có/trong bất kỳ phần tử hoặc trường nào.
Bạn có thể thay đổi window.open
thành bất kỳ lệnh nào khác để chạy khi xác nhận là TRUE
, tương tự với void(0)
nếu cấu hình là NULL
hoặc bị hủy.
Cách tốt nhất mà tôi tìm thấy ở đây.
HTML MÃ
<a href="delete.cfm" onclick="return confirm('Are you sure you want to delete?');">Delete</a>
thêm video này vào ĐẦU PHẦN
$(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;
});
});
Bạn nên thêm Jquery và Bootstrap để làm việc này.
<input type="submit" name="submit" value="submit" onclick="return confirm('Are you sure?');"/>
bạn cũng có thể thực hiện thao tác này trên Nút!
- 1. Hiển thị hộp thoại xác nhận trong Fragment
- 2. Hiển thị hộp thoại xác thực proxy trong C#
- 3. Hộp thoại xác nhận SMS của Android
- 4. Hộp thoại xác nhận GWT
- 5. JQuery hộp thoại xác nhận
- 6. bootstrap-modal không hiển thị hộp thoại
- 7. Ruby on Rails: Xóa hộp thoại bật lên xác nhận hiển thị hai lần
- 8. Xác nhận hộp thoại khi tôi đóng trình duyệt?
- 9. Hộp thoại hiển thị AngularJS từ routeProvider
- 10. Hộp thoại cảnh báo không hiển thị
- 11. spinner hiển thị như hộp thoại
- 12. xác nhận trước khi thoát hộp thoại
- 13. Hộp thoại Dojo với nút xác nhận
- 14. Android VMD MySQL chèn và hiển thị hộp thoại
- 15. Facebook JS SDK: Hiển thị hộp thoại oAuth trong iframe
- 16. Cách xử lý hộp thoại xác nhận xem trên web?
- 17. MVC3 Liên kết hành động với hộp thoại xác nhận
- 18. Hộp thoại xác nhận khi chạy trong asp.net
- 19. Hiển thị hộp thoại jquery trong cửa sổ chính
- 20. Hiển thị bàn phím ảo cho hộp thoại
- 21. hiển thị thanh tiến trình trong hộp thoại cảnh báo
- 22. Hộp thoại Facebook Like Button hiển thị trang
- 23. Hiển thị hộp thoại Xác thực trong C# cho windows Vista/7
- 24. mvc ajax.actionlink với hộp thoại jquery xác nhận
- 25. Không thể Nhận Hộp thoại để hiển thị theo chương trình trong JQuery Mobile
- 26. Hộp thoại xác nhận jQuery trong nút ASP.NET OnClientClick
- 27. Cách hiển thị biểu tượng thích hợp trên hộp thoại
- 28. Cách hiển thị hộp thoại onbeforeunload khi thích hợp?
- 29. Android - Cách hiển thị hộp thoại trên màn hình gốc?
- 30. Hiển thị hộp thoại "mở bằng" trên Android
Trường hợp chính xác là vấn đề của bạn? – Bombe
Gợi ý: Tiêu đề