#ajax #laravel #eloquent
#аякс #ларавель #красноречивый
Вопрос:
У меня есть 3 таблицы с именем seller_infos, районы, подразделения. seller_infos связан отношениями «многие ко многим» с районами и подразделениями. И подразделение имеет одно ко многим отношение с округами. Я создал динамический выбор, выберите подразделение, в котором будут отображаться районы под этим разделением. Динамический выбор будет производиться в разделе продавец. Выбранный район будет прикреплен к идентификатору продавца.
Для опции динамического выбора-gt; Если один район однажды присоединен к одному продавцу, он не будет отображаться снова, если мы снова выберем то же подразделение. Например, я выбираю подразделение Дакки. Под ним находятся 3 района( Газипур, Майменсингх, Нараянгандж). Для продавца А, когда я выбираю Дакку, отображаются 3 района. Я выбрал Газипур и добавил его. В следующий раз для продавца А после выбора Дакки только два района покажут Майменсингх, Нараянгандж.
HTML
lt;form method="POST" action="{{ route('admin.update_seller_profile_un',$seller_profile-gt;id) }}"gt; lt;div class="form-group mb-2"gt; lt;labelgt;lt;i class="fas fa-globe mr-2"gt;lt;/igt;Divisionlt;/labelgt; lt;select id="division" class="ufs form-control" name="divisions"gt; lt;optiongt;Select Countrylt;/optiongt; @foreach($seller_profile-gt;divisions as $row) lt;option value="{{$row-gt;id}}"gt;{{$row-gt;country_name}}lt;/optiongt; @endforeach lt;/selectgt; lt;/divgt; lt;div class="form-group mb-2"gt; lt;labelgt;lt;i class="fas fa-map mr-2"gt;lt;/igt;Districtlt;/labelgt; lt;select id="district" name="districts_id" class="ufs form-control"gt; lt;optiongt;Select Universitylt;/optiongt; lt;/selectgt; lt;/divgt; lt;/formgt;
Аякс
$(document).ready(function() { $('#division').change(function() { var division = $('#division').val(); var idd = $('#idd').val(); $('#district').html(''); $.ajax({ url: '/getDistrict/{id}', type: 'GET', data: { myID: division }, dataType: "json", success: function(data) { $('#district').append('lt;option value=""gt;' "Select District" 'lt;/optiongt;'); $.each(data, function(key, district) { if(district.uni_id != 1) $('#district').append('lt;option value= "' district.id '" gt;' district.name 'lt;/optiongt;'); }); }, error: function() { alert("Error"); } }); alert(data); }); });
With «if(district.uni_id != 1)» I am showing what I wanted but I could do it for only one seller. You can disregard this logic.
Controller(for url)
function getDistrict() { $id = $_GET['myID']; $res = DB::table('divisions')-gt;with('seller_infos') -gt;join('districts','divisions.id','=','districts.divisions_id') -gt;where('divisions.id', $id) -gt;get()-gt;seller; return FacadeResponse::json($res); }
Я даже не уверен, где мне следует измениться, в ajax или в контроллере. Как я могу получить данные о нужном районе от контроллера. Я выбираю подразделение, у меня есть идентификатор подразделения из ввода. Я могу определить районы по соотношению «один ко многим». Но мне нужно сравнить это с тем, есть ли у продавца А какой-либо округ в этом подразделении. 2 сводные таблицы-это division_seller_info и district_seller_info. Я могу получить идентификатор продавца из маршрута формы