为什么你有
if(isset($_POST['deleteReply'])){
?>
在javascript函数之前?您是否期望触发基于$_POST['deleteReply']
var 的 javascript 代码?
您必须记住,php 在服务器端处理并输出 HTML 页面。只有在所有 php 运行后,您的 javascript 代码才会在客户端中运行。
一个更优雅的解决方案是在发送 AJAX 请求之前要求确认。
而且,您的 ajax 调用似乎没有达到您的预期。您正在手动设置 2 个参数以发送到您的 PHP,如果您在服务器端进行确认,这些参数将毫无用处。
参数应该类似于Reply ID
您要删除的回复,并将请求发送到不同的 php 文件进行处理。
我建议您像 Marian Zburlea 为您所做的那样重写您的代码。
编辑
好的,如果你想要一个简单的确认窗口,试试这个:
<input type="button" id="deleteSomething" value="Delete" />
<script type="text/javascript">
$(document).ready(function(){
$('#deleteSomething').click(function() {
if (!confirm("Are you sure?"))
return false;
$.post('delete.php', "replyID=" + replyID, function(response) {
alert(response);
});
});
});
</script>
编辑
如果您有多个删除按钮,最好的方法是将 存储replyID
为传递给您的函数的参数。在您的 php 中回显您的删除按钮,如下所示:
echo '<input type="button" value="Delete" onclick="deleteSomething(\'' . $replyID . '\')" />';
这样,$replyID
将存储在页面的 HTML 中,该 HTML 将传递给deleteSomething(replyID)
您现在必须定义的函数(最好在head
JQuery 库之后的文档中):
<script type="text/javascript">
function deleteSomething(replyID)
{
if (!confirm("Are you sure?"))
return false;
$.post('deleteProcessing.php', "replyID=" + replyID, function(response) {
alert(response);
});
}
</script>
请注意,我ID
从按钮中删除了不生成重复 ID 并且不再需要它们,因为我在onclick
事件中添加了一个函数调用,而不是像以前那样将匿名函数绑定到它们的 ID。