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 :
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.
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();
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... :/):
Je n'ai pas utilisé.
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()))); }
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 :
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 :'(
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" }
Je vous remercie d'avance pour toute aide que vous pourrez me donner
Bien cordialement,
XuruDragon
Partager