【问题标题】:Ajax Form Submit & Refresh Page Out of DIVAjax 表单提交并刷新页面出 DIV
【发布时间】:2012-10-14 18:48:34
【问题描述】:

我正在使用 ajax 表单提交脚本,例如

    <script type="text/javascript">  
  $(document).ready(function(){  
    $("#login").submit(function(event) {  

        /* stop form from submitting normally */  
        event.preventDefault();   

        $.post( 'login.php', $("#login").serialize(),  
          function( data ) {  
              $("#loginoutput").append(data);  
          }  
        );  
      });  
  });  
</script> 
. . .

当表单提交时,loginoutput DIV 中显示的所有内容。错误、控制和成功消息等。 但我想在提交成功后重定向主页,但在 DIV 部分完成重定向。我想刷新不在 DIV 部分的整个页面。但是在 DIV 中执行的所有重定向都类似于输出消息。

表单提交后如何刷新整个页面?

问候

【问题讨论】:

    标签: php ajax forms submit page-refresh


    【解决方案1】:

    如果您想在成功的 ajax 发布后刷新屏幕。然后在 ajax 调用的成功函数中刷新屏幕,如下所示:

    $.post( 'login.php', 
        $("#login").serialize(),
        function(data) { // will trigger after successful request (HTTP 200)
            document.location.reload(true);
        }
    };
    

    【讨论】:

    • 谢谢 document.location.reload(true);是我需要的
    • 如何在刷新前等待来自 login.php 的消息输出 3 秒?
    • 您可以像这样添加 3 秒的睡眠:setTimeout(function() { //here the refresh line }, 3000);
    【解决方案2】:

    你也可以使用这个小解决方案:

    var form = document.getElementById("login");
    $.post('login.php', form.serialize(),
           function(data) {
              var response = data;
              if(response.length > 0){
                document.location.reload(true);
              } else {
                console.log('error');
              }  
           }
    });
    

    【讨论】:

    • 我的回答有什么不同?你唯一要做的就是分配一个变量(为什么不使用response而不是data?),然后你看看服务器是否用文本响应,你知道他调用的脚本是否发回了一些东西(我想不是)?因为如果他的脚本没有生成源代码,那么即使成功,您的控制台也会记录 error
    • Sven - 你看到«Also» == «Or»?我的答案只是一个变体。)))
    猜你喜欢
    • 2016-02-03
    • 2013-02-09
    • 2017-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-05-01
    • 2011-12-10
    相关资源
    最近更新 更多