I am working on a project in which I want to save addresses of offices and the offices create.blade have country and city dependent drop-down for dependent drop-down I did the following code using JavaScript for AJAX call, but when I am running it, I am getting "Route not define error in office.create.blade.
Below is the for offices.create.blade
@section('scripts')
<script type="text/javascript">
$("#country").change(function(){
$.ajax({
url: "{{ route('admin.cities.get_by_country') }}?country_id=" + $(this).val(),
method: 'GET',
success: function(data) {
$('#city').html(data.html);
}
});
});
</script>
@endsection
<div class="panel panel-default">
<div class="panel-heading">
@lang('quickadmin.qa_create')
</div>
<div class="panel-body">
<div class="row">
<div class="col-xs-12 form-group">
{!! Form::label('country_id', trans('quickadmin.offices.fields.country').'*', ['class' => 'control-label']) !!}
{!! Form::select('country_id', $countries, old('country_id'), ['class' => 'form-control select2', 'required' => '']) !!}
<p class="help-block"></p>
@if($errors->has('country_id'))
<p class="help-block">
{{ $errors->first('country_id') }}
</p>
@endif
</div>
</div>
<div class="row">
<div class="col-xs-12 form-group">
{!! Form::label('city_id', trans('quickadmin.offices.fields.city').'*', ['class' => 'control-label']) !!}
<select name="city_id" id="city" class="form-control">
<option value="">{{ trans('quickadmin.qa_please_select') }}</option>
</select>
<p class="help-block"></p>
@if($errors->has('city_id'))
<p class="help-block">
{{ $errors->first('city_id') }}
</p>
@endif
</div>
</div>
<div class="row">
<div class="col-xs-12 form-group">
{!! Form::label('address', trans('quickadmin.offices.fields.address').'*', ['class' => 'control-label']) !!}
{!! Form::text('address', old('address'), ['class' => 'form-control', 'placeholder' => '', 'required' => '']) !!}
<p class="help-block"></p>
@if($errors->has('address'))
<p class="help-block">
{{ $errors->first('address') }}
</p>
@endif
</div>
</div>
</div>
</div>
CitiesController.php code
public function get_by_country(Request $request)
{
abort_unless(\Gate::allows('city_access'), 401);
if (!$request->country_id) {
$html = '<option value="">'.trans('quickadmin.qa_please_select').'</option>';
} else {
$html = '';
$cities = City::where('country_id', $request->country_id)->get();
foreach ($cities as $city) {
$html .= '<option value="'.$city->id.'">'.$city->name.'</option>';
}
}
return response()->json(['html' => $html]);
}
OfficeController.php code
public function perma_del($id)
{
if (! Gate::allows('office_delete')) {
return abort(401);
}
$office = Office::onlyTrashed()->findOrFail($id);
$office->forceDelete();
return redirect()->route('admin.offices.index');
}
define route in web.php as below
Route::get('cities/get_by_country', 'CitiesController@get_by_country')->name('admin.cities.get_by_country');
I don't know where I did mistake? looking forward for helping me throw this Thanks
</div>