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

Symfony PHP Discussion :

Enregistrer une classe modale


Sujet :

Symfony PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2014
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2014
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Enregistrer une classe modale
    Bonjour a tous j ai un serieux probleme je n arrive pas a enregistrer ma classe modal

    la soumission de la classe recontre une erreur 500

    voila mes fichiers:

    le controler equipe au niveau du create:
    Code : 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
    /**
        * Creates a new Equipe entity.
        *
        * @Route("/{idoffre}/", name="equipe_create",defaults={"_format"="json"})
        * @Method("POST")
        * @Template("AppGestionBundle:Equipe:new.html.twig")
        */
       public function createAction(Request $request, $idoffre)
       {
     
       $em = $this->getDoctrine()->getManager();
       $entity = new Equipe();
     
       $offre=$em->getRepository('AppGestionBundle:Offre')->find($idoffre);
               $entity->addOffre($offre);
               $form = $this->createForm(new EquipeType(), $entity, array(
           'action' => $this->generateUrl('equipe_create',  array('id' => $idoffre)),
       ));
    if($request->getMethod() == 'POST') {
           if ($form->handleRequest($request)->isValid()) {
               $em->flush();
               $message = 'OK';
               $response = new Response();
               $response->headers->set('Content-Type', 'application/json');
               $response->setContent(json_encode($message));
               return $response;
           }
       }
    return $this->render('AppGestionBundle:Offre:show.html.twig', array(
           'id' => $idoffre,
           'form' => $form->createView(),
       ));
    maintenant le controller offre:
    Code : 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
    /**
     * Finds and displays a Offre entity.
     *
     * @Route("/{id}", name="offre_show")
     * @Method("GET")
     * @Template()
     */
    public function showAction($id)
    {
        $em = $this->getDoctrine()->getManager();
     
        $entity = $em->getRepository('AppGestionBundle:Offre')->find($id);
        $equipe = $em->getRepository('AppGestionBundle:Equipe')->getEquipeDunOffre($entity);
        if (!$entity ) {
            throw $this->createNotFoundException('Unable to find Offre entity.');
        }
     
        $equip = new Equipe();
        $formEquipe = $this->createForm(new EquipeType(), $equip);
        $equipes = $em->getRepository('AppGestionBundle:Equipe')->getEquipeDunOffre($entity);
        $deleteForm = $this->createDeleteForm($id);
     
        return array(
            'entity'      => $entity,
            'equipe'      => $equipe,
            'equipes'      => $equipes,
            'formEquipe' => $formEquipe->createView(),
            'delete_form' => $deleteForm->createView(),
        );
    }
    Ma classe modal:
    Code : 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
    <!-- Ceci est le bouton d ajout dune equipe -->
     <a class="btn btn-primary "data-toggle="modal" id='affecterEquipe'>
                <i class="glyphicon glyphicon-plus-sign"></i>
                Affecter
            </a>
     
    <!-- ceci est le formulaire d ajout d'une equipe -->
     
    <div class="modal fade" id="dialogEquipe" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
        <div class="modal-dialog">
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true" onclick="supprimerForms()">&times;</span></button>
                    <<h4 class="modal-title" id="myModalLabel">Affectation Une Equipe : {{entity}}</h4>
                </div>
                <div id="modal-wrapper">
        <div class="modal-body" id="form_equipe">
            <form class="form-horizontal" action="{{ path('equipe_create',{'idoffre': entity.id}) }}" id="formulaire_equipe" method="post">
     
                {{form_row(formEquipe.referenceEquipe,{title:"Reference: "})}}
                {{form_row(formEquipe.nomOffre,{title:"Libellé: "})}}
                {{form_row(formEquipe.specialite,{title:"Montant Deduite: "})}}
                {{ form_rest(formEquipe)}}
            </form>
     
        </div>
            </div>
        <div class="modal-footer">
                    <input type="reset" value ="Annuler" class="btn btn-default btn btn-default" onclick="supprimerForms()"/>
                    <input type="submit" id="savePanne" class="btn btn-primary btn btn-default"/>
                </div>
            </div>
        </div>
    </div>
    et maintenant mon javascripts:
    Code : 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
    $(document).ready(function() {
          $("#affecterEquipe").click(
     
             function (e){
                e.preventDefault();
     
     
                $("#modal-wrapper").load("new/"+$(this).attr("data-id"),{},function(){
                $("#dialogEquipe").modal("show");
                var $monForm = $("#formulaire_equipe");
                alert("hello my boy");
                $("#savePanne").on("click", function(){
                    $('#spinner').css('display', 'block');
                    $monForm.validate();
                    if($monForm.valid()){
                        $.ajax({
                            type        : 'POST',
                            url         : $monForm.attr('action'),
                            headers: {"name": "editclientvalidation"},
                            data        : $monForm.serialize(),
                            dataType    :"json",
                            success     : function(response)
                            {
                                window.location.reload();
                            }
                        });
                    }
                    return false;
                });
            });
        });
    });
    merci d avance les gars

  2. #2
    Membre expert
    Avatar de dukoid
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2012
    Messages
    2 100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2012
    Messages : 2 100
    Points : 3 004
    Points
    3 004
    Par défaut
    oh la la la la

    en fait tu envois un formulaire en ajax, ce que tu ne dis pas dans ton message.

    à quoi ça sers de faire une requête AJAX si en réponse success de AJAX tu rafraîchis la page. aucun intérêt.
    dans ce cas envois le formulaire normalement en Symfony.


    l’intérêt de l'AJAX est justement pour ne pas rafraîchir la page




    avec firebug onglet RESEAU

    analyse la requête d'envois et la réponse.. il y a pleins d'infos
    ou alors la barre profil de Symfony

  3. #3
    Membre éprouvé
    Homme Profil pro
    Développeur Web
    Inscrit en
    Novembre 2013
    Messages
    739
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Novembre 2013
    Messages : 739
    Points : 1 022
    Points
    1 022
    Par défaut
    En lisant le titre " Enregistrer une classe modale" j'ai eu l'impression qu'il y a une classe d'objet qui s'appelle "modale"
    Encore , un erreur 500 nous ne dis pas grand chose.
    Pour plus détails regarde les fichiers log app/logs et si ça crache avant symfony ( meme si je crois pas)
    regarde les fichiers log de ton serveur web exp: apache , nginx etc ..
    Bien sur tu peux corriger l'erreur en suivant la méthode de dukoid ( navigateur => onglet réseau etc ..)

Discussions similaires

  1. Enregistrer une classe sous une form
    Par adrienfehr dans le forum Visual Studio
    Réponses: 13
    Dernier message: 03/11/2010, 14h58
  2. enregistrer une classe personnalisee dans un QSettings
    Par elmcherqui dans le forum Débuter
    Réponses: 4
    Dernier message: 30/07/2009, 19h50
  3. Enregistrer une classe dans un fichier
    Par Davjack dans le forum Langage
    Réponses: 2
    Dernier message: 31/05/2007, 21h16
  4. Réponses: 10
    Dernier message: 27/03/2007, 20h19
  5. Réponses: 7
    Dernier message: 01/09/2006, 14h19

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