使用ajax提交表单,但重定向到另一个页面
如果我想在表单上提交(a)执行某个php文件(url -a),我应该在html和jquery中使用什么; (b)重定向到另一个。(url-b)
我目前实现了jquery表单插件。 http://jquery.malsup.com/form/#getting-started
像这样:
步骤a。 包括jquery和表单插件脚本;
步骤b。 在html中,在表单元素中:
步骤c。 在js中,内部document ready
:
$('#form').ajaxForm(function() { $.post("url-a.php", {a: a, b: b}); });
是否应更改其中一个URL链接? 假设url-a是ajax应该处理的那个,我想重定向到url-b ..
谢谢!
$('#form').ajaxForm(function() { $.post("url-a.php", {a: a, b: b}); window.location.href="/url-b.php"; });
如果您希望页面重定向,那么为什么您希望它提交ajaxly
任何成功处理程序中的方式您可以重定向到页面
$.post("url-a.php", {a: a, b: b},function(){ window.location.href="/page/to/redirect.php"; });
在$.post(..)
的“完整”function中,您应该更改浏览器的位置。 您不能使用带有ajax的服务器端重定向。
$.post("url-a.php", {a: a, b: b},function(){ window.location.href="/url-b.php"; });
如果你想在ajax完成之前重定向,这是可能的,但很难。 例如,我不知道如何在PHP中执行此操作。 问题是,如果你立即重定向(再次应该通过javascript完成),那么请求将从客户端中止。 如果请求被中止,服务器也会中止它。 有时可以在服务器上启动一个与请求线程分开的新线程,但如果请求在完全到达服务器之前中止,它将全部失败。
一般来说,你不应该这样做 – 这是一个错误的方法。 要么不重定向,要么不在上一页上启动ajax请求 – 一旦新页面加载就启动它。
更新:我看到你需要你的ajax请求运行一个小时 – 这不会发生 – 浏览器将超时。 在确认确实需要一个小时后, 请检查此异步php任务。 你可以从$(document).ready(function() {..});
第二页