Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 显示加载图标,然后重定向到新页面_Javascript_Php_Jquery_Ajax - Fatal编程技术网

Javascript 显示加载图标,然后重定向到新页面

Javascript 显示加载图标,然后重定向到新页面,javascript,php,jquery,ajax,Javascript,Php,Jquery,Ajax,假设我有一个页面“page1”,其中包含一些信息和一个名为“Add”的按钮 当我点击这个按钮时,它会打开一个弹出模式窗口,其中包含一个表单,其中包含大约10个字段和submit按钮。单击此按钮后,我使用ajax post提交表单,在服务器端它执行插入和更新操作,并返回成功或失败的结果 在这个ajax过程中,我将显示一个正在加载的图像。我正在尝试的是,在这个加载图像之后,它应该重定向到新页面。让我们说“第2页”。但在我的代码中,我看到加载停止后,我看到模式窗口和“page1”大约2-3秒,然后只有

假设我有一个页面“page1”,其中包含一些信息和一个名为“Add”的按钮

当我点击这个按钮时,它会打开一个弹出模式窗口,其中包含一个表单,其中包含大约10个字段和submit按钮。单击此按钮后,我使用ajax post提交表单,在服务器端它执行插入和更新操作,并返回成功或失败的结果

在这个ajax过程中,我将显示一个正在加载的图像。我正在尝试的是,在这个加载图像之后,它应该重定向到新页面。让我们说“第2页”。但在我的代码中,我看到加载停止后,我看到模式窗口和“page1”大约2-3秒,然后只有它重定向到“page2”

我不确定我的问题是否合乎逻辑,但是否有任何方法可以阻止它。 下面是ajax处理代码

多谢各位

   $.ajax({
        type: 'POST',
        url: 'page2.php',
        data: {
            'data': form_data
        },
        success: function(response)
        {
            var arr = JSON.parse(response);
            if(arr.success == true) {
                window.location.href = 'page3.php';
            }
            else {
                alert('There are some error while saving record.');
            }
        },
        beforeSend: function()
        {
            $('.loader').show().delay(9000);
        },
        complete: function(){
            $.fancybox.close();
            $('.loader').hide();
        }
    });
完成
ajax
请求后,不要隐藏加载程序


完成
ajax
请求后不要隐藏加载程序。

是否尝试移动
$('.loader').hide()
success
中的最后一行?如果您正在成功重定向,为什么还要使用
$('.loader').hide()
在完成中,图像将消失,因为您已被重定向到其他页面。您唯一需要它的地方就是您的
警报所在的地方。@George谢谢。现在我明白了,您是否尝试移动
$('.loader').hide()
success
中的最后一行?如果您正在成功重定向,为什么还要使用
$('.loader').hide()
在完成中,图像将消失,因为您已被重定向到其他页面。您唯一需要它的地方就是您的
警报所在的地方。@George谢谢。现在我明白了,如果(arr.success==true)
是的,他们可能需要在
else
块中添加它。应该隐藏弹出窗口,因为没有重定向。@Andreittor但非常感谢您。很值得添加。如果(arr.success==true)
是的,则需要将其添加到
块中。应该隐藏弹出窗口,因为没有重定向。@Andreittorut非常感谢
$.ajax({
     success: function(response)
     {
        ...
        if(arr.success == true) {
            ...
        }
        else {
            ...
            $('.loader').hide();
        }
     },
     ...
     complete: function(){
         $.fancybox.close();
     }
});