Вызовите данные сводной таблицы «многие ко многим» на основе 3 таблиц

#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. Я могу получить идентификатор продавца из маршрута формы