我正在使用Laravel创建一个项目
在我的视图中,我使用Fancybox-2来显示一个表单。当表单提交时,我希望关闭Fancybox,然后将用户重定向到另一个页面。
在我的控制器中,在处理表单的方法的末尾,我有
// some code
return Redirect::route('Page')当我从视图中提交表单时,一切都正常。数据库已填满,我被重定向到'Page‘。但是,我在Fancybox中进行了重定向。如何关闭精美的方框,然后在我的控制器中重定向到“Page”?这有可能吗?
发布于 2015-01-24 18:20:06
您必须使用javascript处理重定向。我建议你从控制器返回一个JSON对象,然后在你的回调函数中读出:
if(Request::ajax()){
return Response::json(array('redirect' => route('Page')));
}
return Redirect::route('Page')Javascript:
function(response){
if(response.redirect){
window.location = response.redirect;
}
}发布于 2015-01-25 11:19:47
我不知道Laravel,但是为了关闭fancybox (我假设它是一个iframe类型),你需要从打开的页面调用parent.jQuery.fancybox.close()方法。
然后,在fancybox自定义初始化脚本(您的问题中没有显示的脚本)中,添加afterClose回调以将页面重定向到您想要的任何位置,如下所示:
$(".fancybox").fancybox({
// other API options
afterClose : function() {
window.location.href = "http://example.com/page.html";
}
});https://stackoverflow.com/questions/28120812
复制相似问题