Bonjour à tous,


Je viens vous demander un peut d'aide, car malgré mes recherches je ne trouve pas de solution à mon problème.


Mon problème :

J'ai un formulaire, que voici :

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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
 
$form = $this->createFormBuilder()
            ->add('codelogement', 'text', array(
                    'required' => true,
                    'label' => 'local.attribut.codelogement',
                    'data' => $retour
                )
            )
            ->add('idbatiment', 'choice', array(
                    'required' => true,
                    'choices' => $batiments_list,
                    'label' => 'batiment.label',
                    'empty_value' => 'Sélectionnez une valeur',
                    'empty_data' => null
                )
            )
            ->add('idescalier', 'choice', array(
                    'label' => 'escalier.label',
                    'empty_value' => 'Sélectionnez une valeur',
                    'empty_data' => null
                )
            )
            ->add('idetage', 'choice', array(
                    'label' => 'etage.label',
                    'empty_value' => 'Sélectionnez une valeur',
                    'empty_data' => null
                )
            )
            ->add('idtypelocal', 'entity', array(
                    'class' => 'VitamEntityBundle:TypeLocal',
                    'label' => 'typeLocal.label',
                    'data' => ($local->getIdtypelocal() != null)? $local->getIdtypelocal() : '',
                )
            )
            ->add('porte', 'text', array(
                    'label' => 'local.attribut.porte',
                    'data' => $local->getPorte(),
                    'required' => false
                )
            )
            ->add('emplacementactifdisponible', 'checkbox', array(
                    'label' => 'Emplacement actif dispo?',
                    'data' => $local->getEmplacementactifdisponible(),
                    'required' => false
                )
            )
            ->add('info', 'text', array(
                    'label' => 'local.attribut.info',
                    'data' => $local->getInfo(),
                    'required' => false
                )
            )
            ->add('codeentree', 'text', array(
                    'label' => 'local.attribut.codeentree',
                    'data' => $local->getCodeentree(),
                    'required' => false
                )
            )
            ->add('codeascenceur', 'text', array(
                    'label' => 'local.attribut.codeascenceur',
                    'data' => $local->getCodeascenceur(),
                    'required' => false
                )
            )->getForm();
Les deux listes (idescalier et idetage), sont rempli par requêtes AJAX avec les Id des objets comme valeur et leur référence en text.


Lorsque j'envoie mon formulaire (après avoir sélectionné les valeurs de ses deux listes), après le Bind du formulaire je me retrouve avec ces deux valeurs vide....

Voici mon code de "récupération" (j'ai volontairement enlevé la validation, qui de toutes façons sortais en erreur... :/):

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
 
$request = $this->getRequest();
 
        if($request->isMethod('POST')){
            $form->bind($request);
 
                $data = $form->getData();
 
                $local->setCodelogement($data['codelogement']);
                $local->setPorte($data['porte']);
                $local->setEmplacementactifdisponible($data['emplacementactifdisponible']);
                $local->setInfo($data['info']);
                $local->setCodeentree($data['codeentree']);
                $local->setCodeascenceur($data['codeascenceur']);
                $local->setIdtypelocal($data['idtypelocal']);
 
 
                $local->setIdbatiment($em->getRepository('VitamEntityBundle:Batiment')->find($data['idbatiment']));
 
 
                $local->setIdescalier($em->getRepository('VitamEntityBundle:Escalier')->findOneByIdescalier($form->get('idescalier')->getData()));
                $local->setIdetage($em->getRepository('VitamEntityBundle:Etage')->findOneByIdetage($form->get('idetage')->getData()));
 
                $em->persist($local);
 
                $em->flush();
                $this->get('session')->getFlashBag()->add('success', 'Les données ont été sauvegardées!');
                return $this->redirect($this->generateUrl('vitam_site_sonataliste_listlocal', array('idSite' => $site->getIdsite())));
        }
Je n'ai pas utilisé.

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
$data['idescalier']
$data['idetage']

Car quand je le fais, J'ai un message me disant que les index 'idescalier' et 'idetage' ne sont pas définis... :S



Et voici les données de la requêtes récupéré grâce au Profiler :

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
 
Key	Value
form	
{
 
"codelogement":"SI-LC02-ST-CAPP0101",
 
"idbatiment":"50677",
 
"idescalier":"51232",
 
"idetage":"231209",
 
"idtypelocal":"1",
 
"porte":"",
 
"info":"",
 
"codeentree":"",
 
"codeascenceur":"",
 
"_token":"6e99cb7f5c4e4c51d849da6bf14b90b09f549b03"
 
}
On vois très bien ici que les champs "idetage" et "escalier" ont bien été envoyé et possède une valeur... alors pourquoi je ne récupère rien :'(



Je vous remercie d'avance pour toute aide que vous pourrez me donner



Bien cordialement,



XuruDragon