Javascript 如何在php脚本中实现确认警报?

Javascript 如何在php脚本中实现确认警报?,javascript,php,jquery,Javascript,Php,Jquery,我有一个PHP脚本,用于检查去年是否有用户注册。如果没有,则无法预订,但是我有一个alertify JavaScript,如果用户希望继续/覆盖预订,它将提示。 我知道它们是客户端和服务器端。这就是我到目前为止所做的 如果$retemp是1,那么它在去年没有被预订,我想要一个带有覆盖选项的警报。我还没有完全理解,我认为我使用POST和ajax的方向是正确的 if($retemp == 1) { ?>

我有一个PHP脚本,用于检查去年是否有用户注册。如果没有,则无法预订,但是我有一个alertify JavaScript,如果用户希望继续/覆盖预订,它将提示。 我知道它们是客户端和服务器端。这就是我到目前为止所做的

如果$retemp是1,那么它在去年没有被预订,我想要一个带有覆盖选项的警报。我还没有完全理解,我认为我使用POST和ajax的方向是正确的

if($retemp == 1)
                {
                    ?>
                    <script type="text/javascript">
alertify.set({ labels: {
    ok     : "Yes",
    cancel : "No"
} });

// confirm dialog
alertify.confirm("Proceed With Booking", function (e) {
    if (e) {
        $.ajax({
    data: {confirm: 'yes'},
    url: 'phpurl.php',
    method: 'POST', // or GET
    success: function(msg) {
        alert(msg);
    }
});
    } else {
        // user clicked "cancel"
    }
});

</script>
if($retemp==1)
{
?>
alertify.set({标签:{
好的:“是的”,
取消:“否”
} });
//确认对话框
alertify.确认(“继续预订”,功能(e){
如果(e){
$.ajax({
数据:{确认:'是'},
url:'phpurl.php',
方法:“POST',//或GET”
成功:功能(msg){
警报(msg);
}
});
}否则{
//用户单击“取消”
}
});

是的,您的思路是正确的。在此上下文中,服务器和客户端之间通信(无需重新加载页面)的唯一方法是ajax

您的php文件“phpurl.php”需要接收$_POST['confirm'],以及您希望通过“data:”对象中的其他数据点传递给它的任何标识信息

1) 发送http头状态代码 2) 输出字符串作为输出

http标头状态代码可以通过

有关使用json响应ajax请求的最佳实践,请参阅。对于这类事情,始终是一个合理的选择

顺便说一句,标题可能会自动设置为200,你必须做一些测试。我总是习惯于自己故意设置它

编辑 警告:未经请求的建议如下

1)您可能想考虑JQuery成功函数来接收一个函数中的全部清除,并实现故障函数来处理某些状态代码上的“不完全清除”,以识别您正在响应的用例。参见

2) jQuery$.post是$.ajax的一个可访问的速记版本——请参见

3) 从上面的链接

从jQuery 1.8开始,jQuery 1.5中引入的jqXHR.success()、jqXHR.error()和jqXHR.complete()回调方法已被弃用。要准备代码以便最终删除,请改用jqXHR.done()、jqXHR.fail()和jqXHR.always()


*编辑2,因为OP询问了POST not GET

,那么你到底需要什么帮助?我很难理解,如何从JavaScript alertify触发其余的php脚本?例如,如果是,继续其余的php脚本,否则什么都不做。谢谢,我会尝试一下,让你知道我的进展情况。听起来不错-仅供参考,我更新了我的ans下面是一些其他可能有用的想法。取决于你想真正感谢你的帮助的兔子洞有多深,我有一个If语句来检查变量$confirm是否等于yes。你提到一个GET,像这样?
$confirm=(isset($\u GET['overridedate'])?$\u GET['overridedate']:NULL)
AGH!我道歉,并将为未来的用户澄清我的帖子。我应该参考$\u post或$\u REQUEST,因为您在ajax调用中使用了post。不过,要回答您的问题,您需要检查
$confirm=(isset($\u post['confirm'])?$\u post['confirm]:null;
这没关系,那么如何触发php脚本呢?
//i.e. for a minimal success setting
header(200);
echo 'Whatever Message You want the Ajax call to see';