我正在使用Laravel创建一个项目
在我看来,我使用Fancybox-2来显示表单。提交表单时,我希望Fancybox关闭,然后让用户重定向到另一个页面。
在我的控制器中,在处理表单的方法结束时,我有
// some code
return Redirect::route('Page')
当我从视图中提交表单时,一切正常。数据库已填满,我已重定向到“Page”页面。但是,我在Fancybox中重定向。如何关闭花式框,然后重定向到“Page”页面'在我的控制器内?这甚至可能吗?
答案 0 :(得分:1)
您必须使用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;
}
}
答案 1 :(得分:1)
我不了解Laravel,但为了关闭fancybox(我认为它是iframe
类型),您需要从打开的页面调用parent.jQuery.fancybox.close()
方法。< / p>
然后,在您的fancybox自定义初始化脚本(您错过了在问题中显示的脚本)中,添加afterClose
回调以将页面重定向到您想要的位置:
$(".fancybox").fancybox({
// other API options
afterClose : function() {
window.location.href = "http://example.com/page.html";
}
});