Фильтровать опции выбора через другое значение опции выбора - PullRequest
0 голосов
/ 15 октября 2018

Моя цель - отфильтровать <select name="team"> с помощью функции JS из <select name="unit">.Команда - это отношения «один к одному» с Юнитом, поэтому фильтрация будет гораздо более безопасным вариантом.Ниже приведены таблицы и коды моих тестов:


Сводная таблица командных единиц

-------------------

Team --------- Unit

A ------------- 1

B ------------- 1

C ------------- 1

D ------------- 2

E ------------- 2

F ------------- 3

-------------------


<select name="unit" class="form-control" id="unit" onchange="refreshTeam()" required />
    <option value="" selected disabled>SELECT UNIT</option>
    @foreach ($units as $unit)
        <option value="{{$unit->id}}">{{ $unit->title }}</option>
    @endforeach
</select>


<select name="team" class="form-control" id="team" required />
    <option value="" selected disabled>SELECT TEAM</option>
    @foreach ($teams as $team)
        <option value="{{$team->id}}">{{ $team->title }}</option>
    @endforeach
 </select>


Вот моя попытка на refreshTeam (), но я уверен, что этонеправильно или нуждается в улучшении

function refreshTeam() {
        var team = document.getElementById("team");
        var unit = document.getElementById("unit");

        <?php
            $unit = 'document.getElementById("unit").value';

            $team_unit = \DB::table('teams')
                            ->leftJoin('team_unit', 'teams.id', '=', 'team_unit.team_id')
                            ->leftJoin('units', 'units.id', '=', 'team_unit.unit_id')
                            ->select('teams.*')
                            ->where($unit, '=', 'team_unit.unit_id')
                            ->get();
            dd($team_unit);
        ?>
    }

1 Ответ

0 голосов
/ 15 октября 2018

Функция refreshTeam должна вызвать GET /unit/1/teams, чтобы вернуть все команды, связанные с единицей 1.

  • Добавить маршрут /unit/{unit}/teams
  • . В этом маршруте выбрать соответствующие команды иверните его как json
  • В вашем refreshTeam используйте ajax или axios для вызова конечной точки с соответствующим модулем
  • Заполните соответствующие команды в select
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...