chagouani's avatar

How to autofill form with id from the previous Form

I'm trying to autofill form with id of techinician from the previous form after clicking add button

interface tarification_tache

@extends('Layouts/app')
@extends('Layouts.master')
@section('content')
@if(count($errors))
    <div class="alert alert-danger" role="alert">
    <ul>
    @foreach($errors ->all() as $message)
     <li>{{$message}}</li>
        @endforeach
     </ul>
    </div>
    @endif
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.1.1/jquery.min.js"></script>



    <script type="text/javascript">

    var getMetiersByTechnicienUrl = "{{url('/metiersbytechnicien')}}";
    var getTachesByMetierUrl = "{{url('/tachesbymetier')}}";
    
//console.log(getMetiersByTechnicienUrl,getTachesByMetierUrl,
getTarificationsByTacheUrl);
    function getMetiersByTechnicien(val) {
        if(val.length>0) {
            var technicien_id = val;
            $.get(getMetiersByTechnicienUrl+'/'+technicien_id,function(res) {
                var html = '<option value="">-Select-</option>' ;
                $.each(res.metiers,function(index,item) {
                    html+='<option value="'+item.id+'">'+item.libelle_metier+'</option>';
                });
                $('#metiers').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);

            });
        }
     }
    
    </script>
<div class="container">
    <div class="row"></div>
    <div class="col-md-12">
       Z
       <div class="col-md-10">
            <h1>Tarification tache</h1>
        <form action=" {{url ('tarification')  }}" method="post">
         {{csrf_field()}}

        <div class="form-group">
            <label for="technicien">Technicien</label>
                <select onchange="getMetiersByTechnicien(this.value)" name="technicien_id" 
     id="technicien" class="form-control">
                    <option value="">-Select-</option>
                    @foreach($technicien as $t)
                        <option value="{{$t->id }}">
                            {{$t->user->nom}}
                        </option>
                    @endforeach
                </select>
        </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>


            </select>
                    </div>
                    <div class="col-md-4">
                        <label>tache: </label>
                        <select style="width: 200px" class="productname form-control" 
    name="tache_id" id="taches">
                            <option value="">-Select-</option>
                        </select>
                    </div>
                    <div class="col-md-4">
                        <label>tarification: </label>
                        <input style="width: 200px" class="productname form-control" type="text"  
  name ="Tarif" class="form-control" value="{{old('tarif')}}">
                           
                        
                    </div>


                </div>
                </div>
                <div class="form-group">
                <input type="submit" value = "enregistrer" class="form-control btn btn-primary">
            </div>
            </div>
                </div>
            </div>

@endsection

tarificationcontroller:

<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\tarificationtache;
use App\technicien;
use App\tache;
use App\metier;

class TarificationController extends Controller
{
 /**
 * Display a listing of the resource.
 *
 * @return \Illuminate\Http\Response
 */
  public function index()
{
    $Listtache=tache::orderBy('libelle_tache')->get();
    $Listtarification=tarificationtache::all();
    return view('tarification.index',['tarification'=>$Listtarification]);
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
   public function create()
{
    $technicien = technicien::orderBy('id','desc')->get();
    $taches = Tache::orderBy('libelle_tache', 'asc')->get();
    $metiers = Metier::orderBy('libelle_metier', 'asc')->get();
    return view('tarification.create')->with('taches', $taches)->with('technicien', $technicien)- 
 >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('technicien');  }

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function show($id)
{
    //
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function edit($id)
{
    $tache=Tache::find($id);
    return view('tache.edit',['libelle_tache'=>$tache],['Tarif'=>$tache],['metier_id'=>$tache]);
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
    public function update(Request $request, $id)
    {
    //
 }

 /**
     * Remove the specified resource from storage.
    *
  * @param  int  $id
    * @return \Illuminate\Http\Response
    */
 public function destroy($id)
 {
    $tache =Tache::find($id);
    $tache->delete();

    return redirect('tache');
 }
 public function getTarificationsByTache($tache_id)
    {
    $t =tache::find($tache_id);
    return response()->json(['tarifications' => $t->tarificationtache]);
    }
}
0 likes
3 replies
aurawindsurfing's avatar

Ok, what you are looking for is http_requests (non persistent), cookies or session.

The way to do it would be to save the form in one of above 3 and then fetch it while you press the button. What you have to understand is that http_requests will live only for one browser refresh and then they are gone, so it all depends on your flow.

Here is a nice package that will allow you to understand them better: https://github.com/barryvdh/laravel-debugbar

Hope it helps!

Please or to participate in this conversation.