У меня есть модал, в котором есть несколько городов.Если пользователь щелкает по городу, в div #conferences отображаются конференции, которые в столбце «город» щелкнули по городу.Это работает нормально.
Я сомневаюсь, как, если пользователь нажимает в Страна, а не в городе, как получить все конференции, независимо от города, потому что, если пользователь нажимает в Стране, результаты могут бытьлюбого города.
Знаете ли вы, как этого добиться?
При значении атрибута типа "" "<a value="">Country</a>
" при нажатии кнопки "Страна" в консоли отображается: "{message: "", "exception: "Symfony\Component\HttpKernel\Exception\NotFoundHttpException",…}" in file "/Illuminate/Routing/RouteCollection.php
".
Метод ConferenceController для получения конференций выбранного города:
public function getConferencesOfCity($slug)
{
$conferences = Conference::whereCity($slug)->get();
return response()->json($conferences);
}
Модал, в котором отображаются ссылки на города:
<div class="modal-body">
<div class="container">
<ul class="modal-list row">
<li class="col-lg-4 col-md-6 col-sm-12">
<a class="" name="" id="" value="">Country</a>
</li>
@foreach($cities as $city)
<li class="col-lg-4 col-md-6 col-sm-12">
<a class="" name="city" id="{{$city}}">{{$city}}</a>
</li>
@endforeach
</ul>
</div>
</div>
Маршрут:
Route::get('conferences/where/city/{slug}','ConferenceController@getConferencesOfCity')->name('city.conferences');
jQuery AJAX-запрос:
$("a[name='city']").on('click', function(){
$('#showCities').html($(this).text());
var city = $(this).attr("id");
$.ajax({
url: '{{ route('city.conferences',null) }}/' + city,
type: 'GET',
success:function(result){
console.log(result)
$('#conferences').empty();
var newConferences='';
var placeholder = "{{route('conferences.show', ['id' => '1', 'slug' => 'demo-slug'])}}";
$.each(result, function(index, conference) {
$('#modal2').modal('hide');
var url = placeholder.replace(1, conference.id).replace('demo-slug', conference.slug);
newConferences += '<div class="col-12 col-sm-6 col-lg-4 col-xl-3 mb-4">\n' +
' <h5 class="card-title">'+conference.name+'</h5>\n' +
<p class="card-text font-size-sm">'+conference.city+'</p>\n' +
' </div>\n';
});
$('#conferences').html(newConferences);
},
error: function(error) {
console.log(error.status)
}
});
});