我的PHP页面有一个删除一个MySQL表格数据的链接。我希望它是这样一种方式,当我点击“删除”链接时,应该出现一个确认框,它应该询问“你确定,你想删除吗?”,有两个按钮:'是'和'否' 。当我单击是时,我想删除MySQL表的数据,当我单击否时,什么都不会发生。
答案 0 :(得分:50)
<a href="http://stackoverflow.com"
onclick="return confirm('Are you sure?');">My Link</a>
答案 1 :(得分:17)
<input name="_delete_" type="submit" value="Delete" onclick="return confirm('Are you sure?')">
答案 2 :(得分:9)
您应该始终使用表单/帖子按钮来确认这样的内容。永远不要依赖Javascript。阅读this以了解原因!
答案 3 :(得分:8)
您可以使用JavaScript来提示您:
在此处找到 - 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>
另一种方式
<a href="delete.page?id=1" onclick="return confirm('Are you sure you want to delete?')">Delete</a>
警告:如果记录只是导航到浏览器中的最终网址 - delete.page?id=1,则此JavaScript不会停止删除
答案 4 :(得分:3)
我通常会创建一个删除页面,如果请求方法为“GET”,则显示确认表单;如果方法为“POST”且用户选择“是”选项,则删除数据。
然后,在带有删除链接的页面中,我添加了一个onclick函数(或只是使用jQuery confirm plugin),它使用AJAX发布到链接,绕过确认页面。
这是伪代码中的想法:
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>
包含删除链接的页面:
<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>
答案 5 :(得分:1)
尝试一下:
<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>
答案 6 :(得分:0)
这样做的PHP方法是使用php.for GTKDialogs中的对话框系统: http://www.kksou.com/php-gtk2/articles/setup-a-dialog-box---Part-2---simple-yes-no-dialog.php javacript方式可能有点容易,但请记住,当javascript关闭时,这不起作用(除非你检查javascript是否启用然后添加这个!?) 这可以是像tsvanharen发布的onclick处理程序,或者在页面内部使用简单的文本对话框而不是唠叨的弹出窗口。
<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>
我使用原型(因此使用$()标签和show()/ hide())。但你可以很容易地将它改成没有原型的工作:
<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>
同样,如果没有javascript,这不起作用,但几乎没有选项。
答案 7 :(得分:0)
如果你要删除某些东西,你应该总是使用POST而不是GET,所以使用confirm()是一个坏主意。我在你的情况下做的是使用像jqModal这样的模态弹出窗口,并在弹出窗口中显示带有是/否按钮的表单。
答案 8 :(得分:0)
onclick="return confirm('Log Out?')? window.open('?user=logout','_self'): void(0);"
这个剧本和之后我还是去了,我也去看了互联网。
是的,这是一个古老的威胁,但似乎没有任何类似的版本,我认为我的贡献。
最简单的&amp;最简单的方法适用于所有具有/在任何元素或字段中的浏览器。
您可以将window.open
更改为在确认为TRUE
时运行的任何其他命令,如果确认为void(0)
或已取消,则与NULL
相同。
答案 9 :(得分:0)
我找到的最佳方式就在这里。
HTML CODE
<a href="delete.cfm" onclick="return confirm('Are you sure you want to delete?');">Delete</a>
将其添加到主题部分
$(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;
});
});
你应该添加Jquery和Bootstrap来实现这个目的。
答案 10 :(得分:0)
<input type="submit" name="submit" value="submit" onclick="return confirm('Are you sure?');"/>
你也可以在Button上执行这个动作!
答案 11 :(得分:0)
我也在寻找一种方法,并使用表格和形式属性来解决这个问题:
<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将检查isset($ _ POST ['del_confirm'])并调用相应的php脚本(用于数据库操作或其他)。 Voilà,不需要javascript。使用formaction属性,删除按钮可以是任何表单的一部分,仍然可以调用不同的表单操作(例如,返回同一页面,但使用按钮设置)。
如果按下按钮,将显示确认按钮。
答案 12 :(得分:0)
<a onclick="javascript:return confirm('Are You Confirm Deletion');" href="delete_customer.php?a=<?php echo $row['id']; ?>" class="btn btn-danger a-btn-slide-text" style="color: white; width:86px; height:37px;" > <span class="glyphicon glyphicon-remove" aria-hidden="true"></span><span><strong></a></strong></span>
答案 13 :(得分:0)
您可以像三元运算符一样处理 onClick 属性,即“确定”和“取消”条件
场景: 这是我想显示确认框的场景,该框将在执行删除操作时询问“确定”或“取消”。我希望如果用户单击“确定”,则表单操作将重定向到页面位置,而在取消页面上将不会响应。
添加进一步的解释,我有一个 type="submit" 的按钮,它最初使用表单标签的默认表单操作。并且我想要具有相同输入类型的删除按钮的上述场景。
所以下面的代码对我来说工作正常
onClick="return confirm('Are you sure you want to Delete ?')?this.form.action='<?php echo $_SERVER['PHP_SELF'] ?>':false;"
完整代码
<input type="submit" name="action" id="Delete" value="Delete" onClick="return confirm('Are you sure you want to Delete ?')?this.form.action='<?php echo $_SERVER['PHP_SELF'] ?>':false;">
顺便说一下,我正在使用 PHP 在 html 元素中以内联方式实现此代码。所以这就是我使用'echo $_SERVER['PHP_SELF']'的原因。
我希望它也适用于您。 谢谢