私は同様の質問をしばらく前に聞いたことがありますが、間違った方法でそれが起こっていることに気付きました。私はデータの配列を持って、必要に応じてそれをjsonデータにすることができます。データは次のようになります前の選択に基づいた動的選択オプション
array:4 [▼
"data" => array:2 [▼
2015 => array:2 [▼
"english" => array:1 [▼
"chips" => array:1 [▼
0 => "img1.png"
]
]
"french" => array:1 [▼
"mussles" => array:1 [▼
0 => "img1.png"
]
]
]
2016 => array:2 [▼
"indian" => array:1 [▼
"madras" => array:1 [▼
0 => "img1.png"
]
]
"italien" => array:1 [▼
"pasta" => array:1 [▼
0 => "img1.png"
]
]
]
]
]
構造はかなり標準、年>国>料理>イメージです。私の見解では、年を表示する選択入力があります。
<select id="yearSelection" class="selectpicker form-control">
@foreach($fileData["data"] as $year => $country)
<option value="{{ $year }}">{{ $year }}</option>
@endforeach
</select>
選択した年に基づいて、使用可能な国を示す2番目のオプションを表示する必要があります。したがって、2015年を選択すると、次の選択オプションに英語とフランス語が表示されます。だから、私はこれにAjaxを使うつもりです。現時点では、私は次のものを持っています
$('#yearSelection').change(function() {
var selectedYear = $("#yearSelection option:selected").val();
$.ajax({
type: "POST",
url: "./productChoices",
data: { year : selectedYear }
}).done(function(data){
});
});
それほど多くはありませんが、その始まりです。だから私のコントローラでは、今私は選択された年を与える年にアクセスすることができます。私は、次の選択入力のためにHTMLを返すことを計画します。
私の問題はこれです。 htmlでは、my selectがforeachループから作成され、配列$ fileDataをループしていることがわかります。私が選択すると、選択した年を渡す必要がありますが、$ fileData配列を渡す必要がありますので、次の選択で表示する必要があるデータを調べることができます。コントローラ。では、Ajaxリクエストとともに$ fileDataをどうやって渡すことができますか?それはhtml要素ではないので、私はあまりにも確実ではありません。あなたのデータセットが非常に大きくない場合、あなたはAJAXせず、それを100%にし、最速のユーザ応答を持つことができ
おかげ
に役立ちます願っています。以前はフィルターを使ったことがありません。関心がなければ、ユーザーが段階的に操作を行うと、これは完全に機能します。彼らが年、国、料理を選んだとし、たとえばその国を変更することに決めたとします。物事をリセットする最良の方法は何でしょうか? –
イメージを表示する際に問題があることもわかっています。私はこのためにajaxを使用するつもりだったが、複数の画像があった –