2016-07-18 2 views
0

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

array:4 [▼ 
    "folder1" => array:1 [▶] 
    "folder2" => array:2 [▶] 
    "folder3" => array:1 [▶] 
    "folder4" => array:1 [▼ 
    "product1" => array:1 [▼ 
     2016 => array:1 [▼ 
     "March" => array:1 [▼ 
      0 => "image1.png" 
     ] 
     ] 
    ] 
    "product2" => array:1 [▼ 
     2015 => array:1 [▼ 
     "June" => array:1 [▼ 
      0 => "image1.png" 
     ] 
     ] 
    ] 
    ] 
] 

Теперь для этой части меня интересует только в Folder4. Я планирую иметь 4 выбора входных данных. Первый должен отображать продукты. Продукты являются папками в корне папки4.

Так что в приведенном выше примере этот select должен показывать product1 и product2.

Второй выбор должен показывать годы. Годы - это папки в продуктах. Третий выбор должен показывать месяцы. Месяцами являются папки в папках лет.

Последний выбор должен показывать имена изображений.

Все это, вероятно, должно быть в пределах цикла foreach. Причина. Я говорю это потому, что, если они выбирают product2 в первом поле выбора, в следующем окне выбора должен быть только год 2015, а не год из папки product1. Это где я нахожусь в данный момент времени, но это довольно далеко

<select class="selectpicker" name="productType"> 
    @foreach($fileData as $type => $product) 
     @if($type == "folder4") 
      @foreach($product as $name => $year) 
       <option value="{{ $name }}">{{ $name }}</option> 
      @endforeach 
     @endif 
    @endforeach 
</select> 

На данный момент я получаю htmlentities() ожидает параметр 1, чтобы быть строка, массив дал. Этот выбор должен отображать product1 и product2. Кроме того, нужно ли сделать другие варианты выбора динамическими в зависимости от того, что было ранее выбрано? Поэтому, если они выбирают продукт 1, в следующем окне выбора должен отображаться только 2016 год.

Любые советы, оцененные.

Thanks

+0

вы знакомы с запросами AJAX? – theMohammedA

+0

да, но зачем это было в этом случае? –

+0

Вы можете выполнить запрос ajax на основе того, что вы выбрали, и получить следующие значения выбора, или вы можете сделать это, как сказал @Kjell. – theMohammedA

ответ

0

Эта логика должна быть реализована в клиенте. Таким образом, выгрузите все необходимые данные в json на свою веб-страницу, а затем создайте javascript или другой код, чтобы отображать элементы выбора на вашей веб-странице на основе выбранных вами параметров.

Делать это на сервере возможность, но очень старую школу и утомительные один ...

+0

Извините, немного смущенный, не могли бы вы подробно рассказать? –

+0

В настоящее время Laravel/Serverside не является общим местом для решения вашей проблемы. Пусть laravel передает данные массива как json в элемент сценария javascript, например: '' ' '' ', и оттуда вам нужно создать какой-то javascript, который собирает данные и генерирует выбранный вход в браузере пользователя. – Kjell

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