In my form below i have two dropdown lists the first one to choose "metier" and a second one to choose "tache" when i choose a "metier" i want that the second dropdown list "tache" suggest only options in relation with the already selected "Metier". Could anyone help me with this please.
create.blade.php
@extends('Layouts/app')
@extends('Layouts.master')
@section('content')
@if(count($errors))
<link rel="stylesheet"
href="//netdna.bootstrapcdn.com/bootstrap/3.1.1/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js">
<div class="alert alert-danger" role="alert">
<ul>
@foreach($errors ->all() as $message)
<li></li>
@endforeach
</ul>
</div>
@endif
<div class="container">
<div class="row">
<div class="col-md-10">
<h1>Tarification tache</h1>
<form action=" " method="post">
<div class="form-group">
<label for="technicien">Technicien</label>
<select name="technicien_id" id="technicien" class="form-control" >
@foreach($techniciens as $techniciens)
<option value="">
</option>
@endforeach
</select>
</div>
////////////
<div class="form-group">
<label for="metier">Libelle metier</label>
<select name="metier" id="metier" class="form-control">
@foreach($metiers as $metier)
<option value="">
</option>
@endforeach
</select>
</div>
<div class="form-group">
<label for="Tache">Libelle Tache</label>
<select name="tache" id="Tache" class="form-control">
@foreach($taches as $tache)
<option value="">
</option>
@endforeach
</select>
</div>
//////////////
<div class="form-group">
<label for="">Tarif</label>
<input type="text" name ="Tarif" class="form-control"value="">
</div>
<div class="form-group">
<input type="submit" value = "enregistrer" class="form-control btn btn-primary">
</div>
</form>
</div>
</div>
<script>
$('#metier').on('change',function(e){
console.long(e);
var met_id = e.target.value;
$.get('/ajax-tac?met_id=' + met_id, function(data){
$('#tache').empty();
$.each(data,function(index, tacObj){
$('#tache').append('<option value="'+tacObj.id+'">'+catObj.libelle_tache+'</option>');
});
});
});
</script>
@endsection
route.php
Route::get('/tarification', 'TarificationController@index');
Route::get('/tarification/create', 'TarificationController@create');
Route::post('/tarification', 'TarificationController@store');
Route::get('/tarification/{id}/edit', 'TarificationController@edit');
Route::put('/tarification/{id}', 'TarificationController@update');
Route::delete('/tarification/{id}', 'TarificationController@destroy');
Route::get('/ajax-metier',function(){
$met_id = Input::get('met_id');
$taches = tache::where('metier_id','=', $met_id)->get();
return Response::json($metiers);
});
controller
public function create()
{
$techniciens = technicien::orderBy('id','desc')->get();
$taches = Tache::orderBy('libelle_tache', 'asc')->get();
$metiers = Metier::all();
return view('tarification.create')->with('taches', $taches)->with('techniciens', $techniciens)->with('metiers', $metiers);
}
/**
* Store a newly created resource in storage.
*
* @param \Illuminate\Http\Request $request
* @return \Illuminate\Http\Response
*/
public function store(Request $request)
{
$tarification = new tarificationtache();
$tarification ->tache_id = $request->input('tache_id');
$tarification ->Tarif =$request->input('Tarif');
$tarification->save();
$tarification->techniciens()->attach($request->technicien_id);
return redirect('home');
}
via Chebli Mohamed
Aucun commentaire:
Enregistrer un commentaire