У меня 4 стола: metier, tache, technicien и tarificationtache
со многими отношениями и в таблице цен у меня есть следующие поля (id, tache-id, tariff)
В этом коде я отображаю список metier, затем список ссылок tache на выбор metier, а затем список ссылок tarificationtache на tacheselect, и теперь я отображаю таблицу, содержащую ссылку technician на этот tarificationtache.
@extends('Layouts/app')
@extends('Layouts/master')
@section('content')
<!-- jQuery -->
<script
src = "https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js">
</script>
<script type = "text/javascript">
var getTachesByMetierUrl = "{{url('/tachesbymetier')}}";
var getAdresseByClientUrl = "{{url('/adressebyclient')}}";
var getTarificationsByTacheUrl = "{{url('/tarificationsbytache')}}";
var getTechniciensByTarificationUrl = "
{{url('/techniciensbytarification')}}";
function getAdresseByClient(val) {
if (val.length>0) {
var client_id = val;
$.get(getAdresseByClientUrl+'/'+client_id,function(res) {
var html = '<option value = "">-Select-</option>' ;
$.each(res.adresses,function(index,item) {
html+='<option
value = "'+item.id+'">'+item.code_postal+'</option>';
});
$('#adresses').html(html);
});
}
}
function getTachesByMetier(val) {
if (val.length>0) {
var metier_id = val;
$.get(getTachesByMetierUrl+'/'+metier_id,function(res) {
var html = '<option value = "">-Select-</option>' ;
$.each(res.taches,function(index,item) {
html+='<option
value = "'+item.id+'">'+item.libelle_tache+'</option>';
});
$('#taches').html(html);
});
}
}
function getTarificationsByTache(val) {
if (val.length>0) {
var tache_id = val;
$.get(getTarificationsByTacheUrl+'/'+tache_id,function(res) {
var html = '<option value = "">-Select-</option>' ;
$.each(res.tarifications,function(index,item) {
html+='<option
value = "'+item.id+'">'+item.tarif+'</option>';
});
$('#tarifications').html(html);
});
}
}
function getTechniciensByTache(val) {
if (val.length>0) {
var tarification_id = val;
$.get(getTechniciensByTacheUrl+'/'+tache_id,function(res) {
var html = '<option value = "">-Select-</option>' ;
$.each(res.techniciens,function(index,item) {
html+='<option
value = "'+item.id+'">'+item.technicien_id+'</option>';
});
$('#techniciens').html(html);
});
}
}
</script>
@if (count($errors))
<div class = "alert alert-danger" role = "alert">
<ul>
@foreach($errors ->all() as $message)
<li>{{$message}}</li>
@endforeach
</ul>
</div>
@endif
<div class = "container">
<div class = "row"></div>
<div class = "col-md-10">
<h1>Ajout Intervention</h1>
<form action = " {{url ('intervention') }}" method = "post">
{{csrf_field()}}
<div class = "form-group">
<label for = "client">Client</label>
<select onchange = "getAdresseByClient(this.value)"
name = "client_id" id = "client"
class = "form-control">
<option value = "">-Select-</option>
@foreach($client as $t)
<option value = "{{$t->id }}">
{{$t->user->nom}}
</option>
@endforeach
</select>
</div>
<div class = "form-group">
<label for = "">date intervention</label>
<input class = "form-control" type = "date" id = "example-date-
input" name
= "date_intervention" value = "{{old('date_intervention')}}">
</div>
<div class = "form-group">
<label for = "">description</label>
<input type = "text" name = "description" class = "form-
control"value = "
{{old('description')}}">
</div>
<div class = "form-group">
<label for = "">duree_prevu</label>
<input class = "form-control" type = "datetime-local" name
= "duree_prevu" value = "
{{old('duree_prevu')}}">
</div>
<div class = "form-group">
<div class = "col-md-12">
<div class = "col-md-4">
<label>Metier: </label>
<select onchange = "getTachesByMetier(this.value)"
style = "width: 200px"
class = "productm form-control" id = "metiers">
<option value = "">-Select-</option>
@foreach($metiers as $t)
<option value = "{{$t->id }}">
{{$t->libelle_metier}}
</option>
@endforeach
</select>
</div>
<div class = "col-md-4">
<label>tache: </label>
<select onchange = "getTarificationsByTache(this.value)"
style = "width: 200px"
class = "productname form-control" name = "tache" id = "taches">
<option value = "">-Select-</option>
</select>
</div>
<div class = "col-md-4">
<label>tarification: </label>
<select onchange = "getTechniciensByTache(this.value)"
style = "width: 200px"
class = "productname form-control" name = "tarification_id"
id = "tarifications">
<option value = "">-Select-</option>
</select>
</div>
<div class = "col-md-4">
<label>Technicien: </label>
<select style = "width: 200px" class = "productname form-
control"
name = "technicien_id" id = "techniciens">
<option value = "">-Select-</option>
</select>
</div>
</div>
</div>
</div>
</div>
</div>
<link
href = "https://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css"
rel = "stylesheet">
<link href = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-
datepicker/1.5.0/css/bootstrap-
datepicker.css" rel = "stylesheet">
<script src = "http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.js">
</script>
<script src = "https://cdnjs.cloudflare.com/ajax/libs/bootstrap-
datepicker/1.5.0/js/bootstrap-
datepicker.js"></script>
@endsection
route.php
Route::get('/techniciensbytache/{tache_id}',
'TechnicienController@getTechniciensByTache');
Хочу вывести список техников из подбора тарификации и тахе
Другая проблема - когда я выбираю тарификацию, у меня нет технических специалистов.
Для этого требуется минимальный воспроизводимый пример.
В дополнение к этому, я заметил, что ряд ваших вопросов широк и требует большого исследования, чтобы ответить. Вероятно, поэтому вам трудно получить ответы: вы просите о реализации функций, а не о том, как сделать что-то конкретное. Здесь вам нужно значительно сузить свои проблемы, чтобы на них можно было ответить (например) в терминах Laravel или JS, а не в том, как создать / реализовать новый компонент пользовательского интерфейса.



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


В чем проблема?