2015-01-24 2 views
0

Я создаю проект, используя LaravelЗакрыть FancyBox с Redirect :: назад() Laravel

На мой взгляд, я использую FancyBox-2, чтобы отобразить форму. Когда форма отправлена, я хочу, чтобы Fancybox закрылся, а затем перенаправил пользователя на другую страницу.

В моем контроллере, в конце методы, который обрабатывает форму, у меня есть

// some code 

return Redirect::route('Page') 

Когда я представить свою форму с точки зрения, все работает. База данных заполнена, и я перенаправлен на страницу «Страница». Однако я перенаправляюсь в Fancybox. Как закрыть окно с фантазией, а затем перенаправить на страницу «Страница» внутри моего контроллера? Возможно ли это?

ответ

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

Хм, но теперь FancyBox не открытый. Содержимое Fancybox загружает в него собственную страницу. – xslibx

+0

Надеюсь, вы не просто ввели код javascript на свою страницу. Предполагается, что это пример того, как обрабатывать обратный вызов с вашего контроллера. Если вам нужна дополнительная помощь, пожалуйста, обновите свой вопрос с помощью кода javascript, который у вас есть. – lukasgeiter

1

не знаю Laravel, но для того, чтобы закрыть FancyBox (I предположим, что это тип iframe), вам нужно вызвать метод parent.jQuery.fancybox.close() с открытой страницы.

Затем в вашем FancyBox пользовательский скрипт инициализации (тот, если вы пропустили, чтобы показать в вашем вопросе), добавьте afterClose обратного вызова, чтобы перенаправить страницу туда, куда вы хотите понравиться:

$(".fancybox").fancybox({ 
    // other API options 
    afterClose : function() { 
     window.location.href = "http://example.com/page.html"; 
    } 
}); 
Смежные вопросы