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

标签 javascript php jquery

我有一个 PHP 脚本,用于检查用户去年是否已预订。如果他们没有,那么他们就无法预订,但是我有一个警报 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>

最佳答案

是的,您走在正确的道路上。在这种情况下(无需重新加载页面)服务器和客户端之间通信的唯一方法是ajax。

您的 php 文件“phpurl.php”需要接收 $_POST['confirm'],以及您想要通过“data:”对象中的其他数据点传递给它的任何标识信息。然后它至少需要执行以下操作

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

http头状态码可以通过 http://php.net/manual/en/function.header.php 设置

//i.e. for a minimal success setting
header(200);
echo 'Whatever Message You want the Ajax call to see';

参见http://jsonapi.org使用 json 响应 ajax 请求的最佳实践。对于此类事情来说,这始终是一个合理的选择。

顺便说一句, header 可能会自动设置为 200,您必须进行一些测试。我总是养成一种习惯,自己有意识地设定它。

编辑 警告:以下是未经请求的建议。

1) 您可能需要考虑使用 jQuery 成功函数来在一个函数中接收全部清除,并实现失败函数来处理某些状态代码上的“并非全部清除”,以识别您正在响应的用例。请参阅https://en.wikipedia.org/wiki/List_of_HTTP_status_codes

2) jQuery $.post 是 $.ajax 的可访问简写版本 - 请参阅注释 https://api.jquery.com/jQuery.post/

3) 来自上述链接

The jqXHR.success(), jqXHR.error(), and jqXHR.complete() callback methods introduced in jQuery 1.5 are deprecated as of jQuery 1.8. To prepare your code for their eventual removal, use jqXHR.done(), jqXHR.fail(), and jqXHR.always() instead.

*编辑2,因为OP询问POST而不是GET

关于javascript - 如何在php脚本中实现确认警报?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37393662/

相关文章:

javascript - 克隆具有空值的元素输入 javascript

javascript - 检查移动网站的小分辨率

php - 如何用PHP计算支付网关

PHP SOAP 无法连接到 SSL WSDL 源

javascript - "Unknown provider: ngDialogProvider"

javascript - <a> 标签在带有 window.location 的 div 中 - 为什么?

php - 如何使用 LOAD DATA INFILE 命令在 MySQL 中输入特殊字符

javascript - 如何在 Apps Script HTML 服务中使用 jQuery UI 日期选择器?

javascript - Bootstrap 3.1.0 : affix too long

jquery - 在视口(viewport)中动画计数器