我想从第一个下拉列表中选择一个值,根据第一个下拉值自动填充另一个下拉列表。
我的观点:
finally
我的控制器:
<label for="category">Catégorie(s):</label>
{!! Form::select('category', $category,null, array('class' => 'form-
control')) !!}
<label for="brand">Marque:</label>
{!! Form::select('brand_name', $brand_name,null, array('class' => 'form-control')) !!}
如何填充另一个下拉列表?有什么想法吗?
答案 0 :(得分:1)
你可以通过一点ajax和get方法轻松完成。可能是你试图加载品牌依赖类别让我们滚动:
你的控制器:
public function index()
{
$category = Category::pluck('categoryName', 'id');
// no need to query brand here because we will load it depend on category
$brand = [];
return view ( 'site.indexS',compact('brand','category') );
}
//这里我们在控制器中添加另一个方法,它将返回品牌对象,具体取决于类别ID
public get_brand($categpry_id){
// hope your brand table contain category_id or any name as you wish which act as foreign key
$brands= Brand::where('category_id',$category_id)
->pluck('brandName','id');
return json_encode($brands);
}
现在我们需要添加此内容以点击此网址:
Route::get('get-brand','YourControllerName@get_brand');
在视图中:
{{ - 我正在为两个下拉列表添加ID - }}
Catégorie(S):
{! Form :: select('category',$ category,null,array('id'=&gt;'category_dropdown','class'=&gt;'form-
控制'))!!}
<label for="brand">Marque:</label>
{!! Form::select('brand_name', $brand_name,null, array('id' => 'brand_dropdown','class' => 'form-control')) !!}
现在在我们的视图文件中我们需要使用ajax,还有很多其他方式我更喜欢这里的ajax
<script type="text/javascript">
var url = "{{url('/')}}";
</script>
<script type="text/javascript">
$('#category_dropdown').on('change', function() {
$('#brand_dropdown').empty();
var id = $('#category_dropdown').val();
$('#brand_dropdown').html('<option selected="selected" value="">Loading...</option>');
var url = url + '/get-brand/'+id;
$.ajax({
url: url,
type: "GET",
dataType: "json",
success:function(data) {
//console.log(data);
$('#brand_dropdown').html('<option selected="selected" value="">Select Brand</option>');
$.each(data, function(key, value) {
$('#brand_dropdown').append('<option value="'+key+'">'+value+'</option>');
});
}
});
});
</script>