IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Laravel PHP Discussion :

Erreurs qui s'affichent sur toutes les fenêtres modales de la page


Sujet :

Laravel PHP

  1. #1
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2018
    Messages
    5
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2018
    Messages : 5
    Points : 6
    Points
    6
    Par défaut Erreurs qui s'affichent sur toutes les fenêtres modales de la page
    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 !');
        }

  2. #2
    Nouveau membre du Club
    Homme Profil pro
    Développeur
    Inscrit en
    Août 2019
    Messages
    46
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Août 2019
    Messages : 46
    Points : 37
    Points
    37
    Par défaut
    Yo !
    Tu veux faire quoi en fait ? une simple màj?

    déjà en js ou autre.., essaie de prendre de bonnes habitudes :

    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
        <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>

    Exemple...

    Code JavaScript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
            $('#modifier').on('show.bs.modal', function(event){
                let button = $(event.relatedTarget),
                     prd_id = button.data('prdid'),
                     nom = button.data('prdnom'),
                     clt = button.data('prdclt'),
                     catg = button.data('prdcatg'),
                     prix = button.data('prdprix'),
                     descp = button.data('prddescp');

    Ensuite pour ton php, controller/model, tu veux juste faire une màj de tes produits ?
    si oui pourquoi ne récupères tu pas tes données en json via ajax ?
    un seul formulaire et quand tu sélectionnes le produit tu récupères les data qu'il te faut

    exemple :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    public function getProduit(Request $request){
            return response()->json([
                "produit"=>Produit::getMyProduit($request->all())
            ]);
        }

Discussions similaires

  1. [langage] Besoin d'aide dans mon codage
    Par frees3x dans le forum Langage
    Réponses: 4
    Dernier message: 08/11/2006, 08h21
  2. besoin d'aide dans un prototype
    Par amigauss dans le forum C
    Réponses: 5
    Dernier message: 17/10/2006, 10h02

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo