【发布时间】:2018-08-31 13:18:32
【问题描述】:
我使用的是 laravel 5.6,我已经进行了下拉选择,但它不起作用。我在下拉菜单省份中选择了一个省份,但菜单城市没有显示城市数据。 这是我的控制器:
public function province()
{
$prov = Province::orderBy("provinsi.id","ASC")
->pluck("name","id");
return view('auth.register',compact('prov'));
}
public function cities($id)
{
$city = City::where("id_provinsi","=",$id)
->pluck("city_name","id");
return json_encode($city);
}
这是我的路线:
Route:: get('/register', 'Auth\RegisterController@province');
Route:: get('/register/cities/{id}', 'Auth\RegisterController@cities');
这是我的看法:
<div class="form-group row">
<label for="prov" class="col-md-4 col-form-label text-md-right">{{ __('Provinsi') }}</label>
<div class="col-md-6">
<select name="prov" class="form-control">
<option value="">=== Choose Province ===</option>
@foreach ($prov as $key=>$value)
<option value="{{$key}}">{{$value}}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group row">
<label for="city" class="col-md-4 col-form-label text-md-right">{{ __('City') }}</label>
<div class="col-md-6">
<select name="cities" class="form-control"> </select>
</div>
</div>
这是我的 javascript:
<script type="text/javascript">
$(document).ready(function()
{
$('select[name="prov"]').on('change', function() {
var provID = $(this).val();
if(provID) {
$.ajax({
url: '/register/cities/'+provID,
type: "GET",
dataType: "json",
success:function(data) {
$('select[name="cities"]').empty();
$.each(data, function(key, value) {
$('select[name="cities"]').append('<option value="'+ key +'">'+ value +'</option>');
});
}
});
}else{
$('select[name="cities"]').empty();
}
});
});
</script>
如果我打开 url /register/cities/(any Province id),我得到了数据 json。
【问题讨论】:
-
您可以从控制器返回 HTML 内容。只需将其附加到您的城市下拉列表中即可。
标签: javascript php jquery ajax laravel