在Ajax响应后显示弹出警报

时间:2019-03-27 05:43:25

标签: javascript php json ajax

我在此代码中使用ajax使用post方法使用JSON请求

$(document).ready(function() {
  $(document).on('submit', '#registration_check', function() {
    var data = $(this).serialize();
    $.ajax({
      type: 'POST',
      url: 'apidomain.com',
      data: data,
      success: function(data) {

        $("#registration_check").fadeOut(500).hide(function() {
          $(".result_1").fadeIn(500).show(function() {
            $(".result_1").html(data);
          });
        });
      }
    });
    return false;
  });
});

响应将在此元素上返回3个字段,例如姓名,电子邮件,电话:

<div id="result_1"></div>

到目前为止,它运行良好,但是我打算做的是,如果ajax响应发现一些返回值为null,则我想显示警报或弹出消息。例如:

  1. 如果JSON响应返回: 姓名:jhon,电子邮件:jhon@doe.com,电话:123456789 用户将重定向到另一个页面(到目前为止已完成)

  2. 但是如果JSON响应返回 名称:jane,电子邮件:jane@doe.com,电话:

弹出窗口或警报将出现,文本电话号码为空。

3 个答案:

答案 0 :(得分:1)

如果您的数据是JSON对象,则可以执行以下操作:

success: function(data) {
  for (var i in data) {
    if (!data[i]) {
      alert(/* MESSAGE HERE */)
      return;
    }
  }

  // Your regular code here
}

答案 1 :(得分:1)

您可以在php文件中创建值的关联数组,并以

之类的json格式回显它
echo json_encode($array);

然后您将在这样的ajax响应中收到此消息

  var objs = JSON.parse(data);

然后,您可以使用nameemailphone之类的键来解析值,这些键是在php文件的关联数组中定义的。

console.log(objs.name);
console.log(objs.email);
console.log(objs.phone);

这是您可以单独解析值的方式。您也可以按照自己的方式应用条件

答案 2 :(得分:0)

首先想到的是:您是否需要在document元素中使用JSON响应,或者它是您不知道如何使用jQuery Ajax?

无论如何,此解决方案在两种情况下都可以为您提供帮助:

$(document).ready(function()
{   
    $(document).on('submit', '#registration_check', function()
    {       
        var data = $(this).serialize();
        $.ajax({
        type : 'POST',
        url  : 'apidomain.com',
        data : data,
        dataType: 'json', // tell jQuery, that the response data will be a JSON - it will be parsed automatically
        success :  function(data)
                   {
                        // now you have a parsed JSON object in the 'data' var

                        var show_alert = false;

                        if (data.phone === null || !data.phone.length) {
                            show_alert = true;
                        }

                        if (data.email === null || !data.email.length) {
                            show_alert = true;
                        }

                        if (show_alert) {
                            alert('here is the alert :)');
                        }

                        $("#registration_check").fadeOut(500).hide(function()
                        {
                            $(".result_1").fadeIn(500).show(function()
                            {
                                $(".result_1").html(JSON.stringify(data));
                            });
                        });

                   }
        });
        return false;
    });
});