2016-10-08 3 views
3

У меня есть форма, которая содержит вкладки разных данных. Вкладки активируются строкой запроса. После сохранения содержимого формы, которая была отправлена, мне нужно перенаправить обратно, чтобы отобразить соответствующую вкладку, используя данные запроса. Как это можно сделать?Как перенаправить обратно с помощью строки запроса?

В настоящее время я использую это для перенаправления:

return Redirect::back()->withErrors($validation); 

но возвращается к первой вкладке даже не было никаких изменений, сделанные на этой вкладке. Я видел что-то вроде

return Redirect::back()->withErrors($validation)->withQuery('tab'=>'info'); 

но это не сработало. Какие-либо предложения?

ответ

1

Если вы используете Redirect::to() то просто.

return Redirect::to('route_name?q='.$append_data) 

Если вы хотите использовать Redirect::back() затем сделать эти следующие

# Pass the value while redirecting 
return Redirect::back()->with('query_data', 'some_data'); 

И добавить условие в файл лезвия.

@if(!empty(Session::get('query_data')) && Session::get('query_data') == 'some_data') 
<script> 
$(function() { 
    //Change the tab using javascript or 
    //use location.href to refresh after appending query params to url. 
}); 
</script> 
@endif 
-1

Вы можете использовать:

header("Location: form.php"); 
exit; 

Так пользователь заполняет форму, когда он отправляет форму он перенаправляется на страницу обработки формы, а затем вы можете использовать эту функцию заголовка, чтобы перенаправить пользователя обратно на странице формы.

, но убедитесь, что это идет перед любым содержанием HTML (или включить outpu буферизации ob_start() в верхней части коды)

+0

речь идет о Laravel. Это далеко не лучшее решение для этой структуры. –

1

Вы можете использовать sessions для этого:

return redirect()->back()->with('tab', 'info'); 

Чтобы получить информацию из сеанса, используйте session() глобальный помощник, который работает в контроллерах и просмотров:

session('tab'); 
Смежные вопросы