如何从选择框中显示表格?

时间:2018-08-06 09:09:35

标签: javascript php ajax laravel

我有下面的表格,带有2个组合框“ Metier = profession”“ tache = task”,我选择了一个Metier和一个tache,之后我希望出现一个包含所有“ techniciens”及其“ tarification”的表格“(当然,只有与已经选择的“ tache”相关的“ tarification”)。

这是要提供的表格 enter image description here

行程

 public function up()
 {
    Schema::create('taches', function (Blueprint $table) {
        $table->increments('id');
        $table->string('libelle_tache');
        $table->float('Tarif', 8,2)->nullable();
        $table->integer('metier_id')->unsigned();
        $table->foreign('metier_id')->references('id')->on('metiers');
        $table->datetime('deleted_at')->nullable();
        $table->timestamps();
    });
}

干预

Schema::create('interventions', function (Blueprint $table) {
    $table->increments('id');
    $table->date('date_intervention')->nullable();
    $table->string('description');
    $table->dateTime('duree_prevu');
    $table->boolean('statut');
    $table->integer('technicien_id')->unsigned();
    $table->foreign('technicien_id')->references('id')- 
    >on('techniciens');
    $table->integer('tarification_id')->unsigned();
    $table->foreign('tarification_id')->references('id')- 
    >on('tarificationtaches');
    $table->integer('client_id')->unsigned();
    $table->foreign('client_id')->references('id')->on('Clients');
    $table->timestamps();
});

tarificationtache

 Schema::create('tarificationtaches', function (Blueprint $table) {
     $table->increments('id');
     $table->float('tarif', 8,2);
     $table->integer('tache_id')->unsigned();
     $table->foreign('tache_id')->references('id')->on('taches');
     $table->datetime('deleted_at')->nullable();
     $table->timestamps();
      });

干预课程

class Intervention extends Model
 {
 protected $fillable = [ ];
 protected $guarded = [];

 public function avisintervention()
 {
   return $this->hasMany(AvisIntervention::class);
 }

 public function technicien()
 {
 return $this->belongsTo(technicien::class);
 }

 public function client()
 {
 return $this->belongsTo(Client::class);
 }

 public function tarificationtache()
 {
 return $this->belongsTo('App\Tarificationtache','tarification_id');
 }

讲授班

 class tache extends Model
 {
 use SoftDeletes;
 protected $guarded = [];
 protected $dates = ['deleted_at'];

 public function metier()
 {
 return $this->belongsTo(Metier::class);
 }

 public function tarificationtache()
 {
 return $this->hasMany(Tarificationtache::class);
 }
 }

中级班

 class metier extends Model 
 {
 use SoftDeletes;
 protected $guarded = [];
 protected $dates = ['deleted_at'];
 public function taches()
 {
 return $this->hasMany(Tache::class);
 }

 public function techniciens()
 {
 return $this->belongsToMany('App\technicien','technicien_zone' 
 ,'metier_id','technicien_id');
 }
 }

tarificationtache类

 class tarificationtache extends Model
 {
  use SoftDeletes;
  protected $guarded = [];
  protected $dates = ['deleted_at'];
 public function tache()
 {
   return $this->belongsTo(Tache::class);
  }
 public function techniciens()
 {
   return $this->belongsToMany('App\technicien', 
  'technicien_tarificationtache' ,'tarificationtache_id','technicien_id');

 }
  public function intervention() {
    return $this->hasMany(intervention::class);
 }

  }

干预控制器

 public function create()

{
$client = client::orderBy('id', 'asc')->get();
$metiers = metier::orderBy('id', 'asc')->get();
$technicien = Technicien::orderBy('id', 'desc')->get();
$tarifications = tarificationtache::orderBy('id', 'desc')->get();

return view('intervention.create')->with('technicien', 
$technicien)->with('client',$client)->with('metiers',$metiers)- 
>with('tarifications',$tarifications);
}

/**
* Store a newly created resource in storage.
*
 * @param  \Illuminate\Http\Request  $request
* @return \Illuminate\Http\Response
*/
public function store(InterventionRequest $request)
{
$intervention = new Intervention();

$intervention ->description =$request->input('description');
$intervention ->duree_prevu =$request->input('duree_prevu');


if($request->has('statut')){
$intervention->statut = $request->input('statut');
}else{
       $intervention->statut = 0;
}

$intervention ->technicien_id = $request->input('technicien_id');
$intervention ->client_id = $request->input('client_id');
$intervention ->tarification_id = $request->tarificationtache_id;
$intervention->save();

干预create.blade.php

@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>
<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="https://cdnjs.cloudflare.com/ajax/libs/bootstrap- 
datepicker/1.5.0/js/bootstrap-datepicker.js"></script>


<script type="text/javascript">


    var getTachesByMetierUrl = "{{url('/tachesbymetier')}}";
    var getAdresseByClientUrl = "{{url('/adressebyclient')}}";
    var getTarificationsByTacheUrl = "{{url('/tarificationsbytache')}}";
    var getTechniciensByTarificationtacheUrl = " 
    {{url('/techniciensbytarificationtache')}}";
    //console.log(getMetiersByTechnicienUrl,getTachesByMetierUrl 
    ,getTarificationsByTacheUrl);

    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 getTechniciensByTache(val) {
        if(val.length>0) {
            var tache_id = val;
            $.get(getTechniciensByTacheUrl+'/'+tarificationtache_id, 
            function(res) {
                var html = '<option value="">-Select-</option>' ;
                $.each(res.techniciens,function(index,item) {
                    html+='<option 
                    value="'+item.id+'">'+item.nom+'</option>';
                });
                $('#techniciens').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 rowSelect(currentRow){
        //this is the code to set a dropdown menu using jquery
        var technicien_id = selectedRow.children[0].innerHTML;
        $("#your_technicien_dropdown_menu_id").val(technicien_id);
    }
    </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 et heure </label>
                <input class="form-control" type="datetime-local"  name 
                ="duree_prevu" value="{{old('duree_prevu')}}">
            </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">
                <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>
            <div class="form-group">
                <div class="form-group">
                <label for="">statut    :   </label>
                <input type="checkbox"  name ="statut" value="1" required 
                autofocus>
            </div>
            <div class="form-group">
                <label for="">payement</label>
                <input type="checkbox"  name ="payement" value="">
            </div>
            <div class="form-group">

                <input type="submit" value = "enregistrer" class="form- 
                control btn btn-primary">
            </div>
 </div>
 </div>
 </div>
 <script>
     function getMessage(){
         $.ajax({
                  type:'GET',
                  url:'{{ ('\getliste') }}',
                  dataType: 'json',
                  success:function(tarifications_list){
                    $table_body = $("#tbl_body_name");
                    $table_body.empty();

                    if (tarifications_list.length > 0) {
                        div_no_data.style.display = 'none';
                        $.each(tarifications_list, function (index, value) {
                            $table_body.append('<tr class="deselected" 
                            onclick="rowSelect(this)">' +
                                '<td style="text-align: left;">' + 
                                 value.technicien_id  + '</td>' +
                                '<td style="text-align: left;">' + 
                                value.tache_id + '</td>' +
                                '</tr>');
                         });
                     }
                   }
                 });
      }
     </script>



@endsection

0 个答案:

没有答案