我使用 Sweet Alert 有这个非常简单的表单并且由于某种原因无法让它工作。当我单击链接时,它会触发警报,当确认警报时,它会重新加载页面,因为它提交了表单。
但由于某种原因,当 $_POST['delete_alert']
未定义时。
我的触发警报的代码:
<a id="sa-warning">Delete</a>
我的表格:
<form id="form" action="index.php" method="POST">
<button type="submit" name="delete_alert" value="delete">Delete</button>
</form>
还有我的 JavaScript:
$('#sa-warning').click(function() {
swal({
title: "Are you sure?",
text: "You will not be able to recover this alert.",
type: "warning",
showCancelButton: true,
confirmButtonColor: "#DD6B55",
confirmButtonText: "Yes, delete it!",
closeOnConfirm: false
}, function() {
document.forms["form"].submit();
});
});
我正在使用位于index.php的PHP代码测试表单是否已正确提交:
<?php
if(isset($_POST['delete_alert'])) {
echo "form is submitted correctly";
} else {
echo "something is wrong";
}
?>
最佳答案
我认为问题出在 document.forms["form"].submit();
仅当单击按钮时,HTML 表单才会发送提交name=value
。
在这种情况下,情况并非如此。
所以我认为你应该使用click
而不是submit
,但在你的情况下它不会工作,因为点击将被你的javascript函数捕获。
这就是为什么最好的解决方案是使用input
关于Javascript 表单提交未正确提交,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35163992/