我想根据另一个选择中的先前选项生成下拉列表中的项目列表。所有项目都在数据库中。
这是我做的:
使用Javascript:
$(document).ready(function () {
$(document).on('change', '#province_name', function() {
var province_id = $(this).val();
var div = $(this).parent();
var op = " ";
$.ajax({
type: 'get',
url: '{!!URL::to('admin/findIDProvince')!!}',
data: {'id':province_id},
success: function(data){
for (var i = 0; i < data.length; i++){
op += '<option value="'+data[i].id+'">'+data[i].city_name+'</option>';
}
div.find('#city_name').html(" ");
div.find('#city_name').append(op);
},
error: function(){
console.log('success');
},
});
});
});
路线(web.php):
Route::namespace('Admin')->prefix('admin')->middleware('auth')->group(function (){
$this->get('/findIDProvince', 'SchoolsListController@findIDProvince');
});
Controller(Admin / SchoolsListController.php):
public function findIDProvince(Request $request)
{
$data = City::select('city_name', 'id')->where('province_id', $request->id)->take(100)->get();
return response()->json($data);
}
HTML(view.blade.php)
<div class="form-group">
<label class="col-md-3" for="province_name">province_name</label>
<div class="col-md-9">
<select id="province_name" name="province_name" class="form-control col-md-12" required>
@foreach($province_names as $province_name)
<option value="{{ $province_name->id }}">{{ $province_name->province_name }}</option>
@endforeach
</select>
</div>
</div>
<div class="form-group">
<label class="col-md-3" for="city_name">city_name</label>
<div class="col-md-9">
<select id="city_name" name="city_name" class="form-control col-md-12" required>
</select>
</div>
</div>
我做错了什么?
答案 0 :(得分:1)
您正在使用
div.find('#city').html(" ");
div.find('#city').append(op);
但是在你的刀片中你有
id = city_name
使用:
div.find('#city_name').html(" ");
div.find('#city_name').append(op);