Заполнить опцию выбора из предыдущего выбора в Laravel - PullRequest
0 голосов
/ 24 мая 2018

У меня есть эта опция выбора, и я пытаюсь заполнить подменю, которое является еще одной опцией выбора из основного меню других опций выбора в laravel в зависимости от выбора из MainMenu:

<div class="form-row">
      <div class="form-group col-md-4">
        <label for="inputState">Main Menu</label>
        <select id="inputState" name="mainmenu" class="form-control">
          <option selected>Choose...</option>
          @foreach ($mainmenus as $mainmenu)
          <option>{{$mainmenu->Title}}</option>  
          @endforeach   
        </select>
      </div>

Я получаю значенияЧтобы получить эту опцию основного меню из запроса:

$mainmenus = DB::connection("mysql2")->table("MainMenu")->get();

Я получаю подменю со следующим запросом:

 $submenu = DB::connection("mysql2")->table('applicationsubmenu')
            ->join('applicationmenu', 'applicationmenu.Id', '=', 'applicationsubmenu.ApplicationMenuId')
            ->select('applicationsubmenu.*')
            ->where('applicationmenu.MainMenuId', '=', $main_menu_id)
            ->get();

Может ли кто-нибудь мне помочь?Как я могу сделать это динамически? Заранее спасибо, я действительно ценю!

1 Ответ

0 голосов
/ 24 мая 2018

В нижней части страницы я бы реализовал функцию Js следующим образом

<script>
 $(document).ready(function(){
  $('#inputState').change(function(){
    var main_menu_id = $('#inputState').val();
    axios.post('/submenus', {
       main_menu_id: main_menu_id
     }).then((r)=>{
      var submenus = r.data.submenus;
      for(var i=0; i<submenus.length; i++){
      $('#submenu').append('<option>'+submenus[i].title+'</option>');
    }
     });
  });
 });
</script>

Определите ссылку в файле web.php

<?php
  ...
  Route::get('/submenus','SubmenuController@getsubmenus');
?>

Теперь на контроллере,

<?php
namespace ...;
use Illuminate\Http\Request; 
use Response;
use DB;

public function getsubmenus(Request $request){
   return Response([
      'submenu' => DB::connection("mysql2")->table('applicationsubmenu')
        ->join('applicationmenu', 'applicationmenu.Id', '=', 
       'applicationsubmenu.ApplicationMenuId')
        ->select('applicationsubmenu.*')
        ->where('applicationmenu.MainMenuId', '=', $request->main_menu_id)
        ->get(),
    ]);
} 
?>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...