Как отобразить таблицу во всплывающем окне? - PullRequest
0 голосов
/ 17 мая 2018

У меня есть форма ниже, с 4 выпадающими списками "Metier = профессия", "Tache = задача", "Tacrification = Price" и "Technicien = Technician", я выбираю Metier и Tache, после этого я хочу, чтобы всплывающее окно появляется и показывает мне таблицу, которая содержит все "techniciens" и их "tarification" (конечно, только "techniciens", которые связаны с уже выбранным "tache").

Пожалуйста, смотрите вторую форму. После этого я выбираю «техник» из этой таблицы, и теперь форма полностью заполнена «техник», и это «цены».

enter image description here

Что я пытаюсь сделать:

enter image description here

вмешательство

    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();
    });

Тарификация

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');

}
}

класс тарификации

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();
    return redirect('intervention');

    }

1 Ответ

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

Отметьте это, чтобы узнать, как создать модал: Bootstrap Modal W3school

Затем поместите вашу таблицу в этот div

<div class="modal-body">
    //put your table in here
</div>

После заполнения таблицы с помощью этойКод Javacript

$.ajax({
  type:'GET',
  url:your_url,
  dataType: 'json',
  success:function(employee_list){
    $table_body = $("#tbl_body_name");
    $table_body.empty();

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

Затем используйте эту функцию, чтобы получить информацию о выбранной строке и установить ее в желаемом раскрывающемся списке

function rowSelect(currentRow){
    //this is the code to set a dropdown menu using jquery
    var technician_id = selectedRow.children[0].innerHTML;
    $("#your_technician_dropdown_menu_id").val(technician_id);
}
...