根据先前的选择动态填充选择选项

时间:2016-07-18 15:14:31

标签: arrays laravel laravel-5 laravel-5.1

我在根据数组预填充选择框时遇到问题。现在我将视图传递给一个类似于以下内容的数组

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个选择输入。第一个应该显示产品。这些产品是folder4根目录下的文件夹。

因此,在上面的示例中,此选择应显示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年。

任何建议表示赞赏。

由于

1 个答案:

答案 0 :(得分:0)

此逻辑应在客户端中实现。因此,将json中的所有必要数据转储到您的网页中,然后使用javascript或其他代码根据选择呈现网页上的选择元素。

在服务器上执行此操作是可能的,但是一个非常古老的学校和乏味的...