2012-10-14 58 views
0

的我用ajax形式提交脚本像Ajax的表单提交和刷新页面输出DIV

<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中执行的重定向都像输出消息一样。

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

Regards

回答

0

如果你想在成功的ajax post之后刷新屏幕。然后,只需刷新屏幕在Ajax调用这样的成功功能:

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

谢谢document.location.reload(真);是我需要的 – Seyhan

+0

如何在刷新之前添加3秒钟等待来自login.php的消息输出? – Seyhan

+0

你可以像这样添加一个3秒钟的睡眠:'setTimeout(function(){//这里是刷新行},3000);'。 –

0

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

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'); 
      } 
     } 
}); 
+0

我的回答有什么不同?你做的更多的事情是分配一个变量(为什么不使用'response'而不是'data'?),然后你看看服务器是否用文本做出了响应,你知道他的被调用脚本是否发回了一些东西(我认为不)?因为如果他的脚本没有生成源代码,那么即使它成功了,你的控制台也会记录错误。 –

+0

斯文 - 你看到«还»==«或»?我的答案只是一个变种。))) – RDK