2014-11-17 7 views
0

У меня есть домашняя страница, содержащая раскрывающееся меню, которое позволяет пользователю выбирать категорию и отображать результаты в зависимости от того, какая опция выбрана в раскрывающемся меню.Laravel PHP: сохранить выбранный вариант выпадающего меню на выбранном

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

{{ Form::label('category', 'Category:') }} 
{{ Form::select('category', array('option1' => 'Option1', 'option2' => 'Option2'), $video->category) }} 

где $video модель используется в контроллере.

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

Контроллер:

public function index() 
{ 
    $vdo = Video::query(); 
    $pic = Picture::query(); 
    if($category = Input::get('category')){ 
     $vdo->where('category', $category); 
     $pic->where('category', $category); 
    } 

    $allvids = $vdo->paginate(10); 
    $allpics = $pic->paginate(10); 
    $data = compact('allvids','allpics'); 
    $this->layout->content = \View::make('home.pics_vids_overview',$data)->with('category', Input::get('category')); 
} 

Вид:

{{Form::open(array('route' => 'overview_select', 'files' => true)) }}  

<div class="form-group"> 
{{ Form::label('category', 'Category:') }} 
{{ Form::select('category', array('Category1' => 'Category1', 'Category2' => 'Category2', 'Category3' => 'Category3', 'Category4' => 'Category4'), array('class' => 'form-control')) }} 

Я попробовал несколько подходов при переходе переменной 'категория' выбранной обратно в выпадающем меню, так что он будет оставаться на выбранный вариант после того, как пользователь делает свой выбор, но ни один из них не работал для меня еще. Любая помощь очень ценится!

ответ

1

Вы можете попробовать это:

{{ 
    Form::select(
     'category', 
     array('Category1' => 'Category1', 'Category2' => 'Category2'), 
     (isset($category) ? $category : 'Category1'), 
     array('class' => 'form-control') 
    ) 
}} 
+0

Проблема с этим подход заключается в том, что раскрывающийся список всегда останется выбранным в «Категории1» после того, как пользователь сделает свой выбор и отправит его. –

+0

Вы должны передать массив '$ category', иначе по умолчанию будет выбрана' category1'. –

+0

Проблема в том, что я не уверен, как передать массив $ category из контроллера в форму. –

0

Использование Form::model вместо Form::open привязать модель к форме, и он будет автоматически подобрать любые значения в модели:

{{ Form::model(array('route' => 'overview_select', 'files' => true)) }}  
+0

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

Смежные вопросы