Bonsoir,
J'essaye de modifier des produits avec un formulaire en utilisant des fenêtres modal de bootstrap, pour chaque produit une fenêtre modal de modification.
Mais lors d'affichage des erreurs pour un modal d'un produit donné, les erreurs s'affichent sur toutes les fenêtres modales de la page. (cad: les autres formulaires de modifications des autres produits)
J'ai tout essayé, rien ne marche même les named message bag puisque c'est qu'un seul form pour tous les produits.
Merci d'avance.
partie de ma vue:
Code HTML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 <form method="POST" action="{{ route('com.produit.update') }}" enctype = "multipart/form-data"> @csrf @method('PATCH') <div class="modal-body row justify-content-center"> <input type="hidden" id="id_prd" name="id_produit" value=""> <div class="col-lg-6"> <div class="form-group col-lg-12"> <label for="Nom" class="col-form-label">Nom du produit :</label> <input type="text" name="Nom" id="nom" class="shadow form-control @error ('Nom') is-invalid @enderror" value="{{ old('Nom') }}"> @error('Nom') <div class="invalid-feedback"> {{$errors->first('Nom')}} </div> @enderror </div> </form>
Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41 <script type="text/javascript"> $('#modifier').on('show.bs.modal', function(event){ var button = $(event.relatedTarget) var prd_id = button.data('prdid') var nom = button.data('prdnom') var clt = button.data('prdclt') var catg = button.data('prdcatg') var prix = button.data('prdprix') var descp = button.data('prddescp') var modal = $(this) modal.find('.modal-body #id_prd').val(prd_id); modal.find('.modal-body #nom').val(nom); modal.find('.modal-body #clt').val(clt); modal.find('.modal-body #catg').val(catg); modal.find('.modal-body #prix').val(prix); modal.find('.modal-body #descp').val(descp); }) $('#supp').on('show.bs.modal', function(event){ var button = $(event.relatedTarget) var prd_id = button.data('prdid') var modal = $(this) modal.find('.modal-body #id_prd').val(prd_id); }) </script> @if (count($errors) > 0) <script type="text/javascript"> $( document ).ready(function() { $('#modifier').modal('show'); }); </script> @endif
controller:
Code PHP : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48 public function update(Request $request) { $id_prd = $request->input('id_produit'); request()->validate([ 'Nom'=>'required', 'Client' => 'required', 'Catégorie' => 'required', 'Prix' => 'required|integer|not_in:0', 'Description' => 'required|between:20,300', 'Logo' => 'sometimes|image|mimes:png,jpg,jpeg|dimensions:max_heigh=200,max_width=200', ]); $produit = Produit::find($id_prd); if(request()->has('Logo')){ $upload_logo = request()->file('Logo'); $logo_name = request('Nom').'.'. $upload_logo->getClientOriginalExtension(); $logo_path = public_path('/img/produit/'); $upload_logo->move($logo_path, $logo_name); $produit ->nom_prd = $request->get('Nom'); $produit ->soc_id = $request->get('Client'); $produit ->soc_id = $request->get('Catégorie'); $produit ->prix_prd = $request->get('Prix'); $produit ->descp_prd = $request->get('Description'); $produit ->logo_prd = '/img/produit/'.$logo_name; $produit->save(); return redirect()->back()->with('success', 'Le produit a été mis à jour, merci !'); } $produit ->nom_prd = $request->get('Nom'); $produit ->soc_id = $request->get('Client'); $produit ->soc_id = $request->get('Catégorie'); $produit ->prix_prd = $request->get('Prix'); $produit ->descp_prd = $request->get('Description'); $produit->save(); return redirect()->back()->with('success', 'Le produit a été mis à jour, merci !'); }
Partager