Bonjour les amis ,
je débute avec ajax , j'espere retrouver mon bonheur avec vous .
J 'essaie d'ajouter des donnés (menus) sans refraichir la page , l'ajout ce fait , l'affichage aussi .
Mais le code m'affiche , lorsque je clique submit , une deuxieme form (deux a la fois )
je sais pas d"ou viens
Merci d 'avance .
Controlleur :
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 public function newFormAjaxAction() { $request= $this->getRequest(); $newform = $this->get('form.factory') ->create(new menuType(), new Menu()); $x="a"; if ($request->isXmlHttpRequest()) { $newform->handleRequest($request); if ($newform->isValid()){ $menu = $newform->getData(); $em = $this->getDoctrine()->getManager(); $em->persist($menu); $em->flush(); $x = $em->getRepository('MyAppEspritBundle:menu')->findAll(); return $this->render('MyAppEspritBundle:Default:ajaxbouton.html.twig', array('form' => $newform->createView(),'menu' => $x)); //return new JsonResponse(array('response'=>TRUE)); } else{ return $this->render('MyAppEspritBundle:Default:ajaxbouton.html.twig', array('form' => $newform->createView(),'menu' => $x)); // return new JsonResponse(array('response'=>false)); } } return $this->render('MyAppEspritBundle:Default:ajaxbouton.html.twig', array('form' => $newform->createView() ,'menu' => $x)); }
Vue :Vue liste.html :
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 {# empty Twig template #} <script src="{{ asset('bundles/myappesprit/js/jqueryajax.min.js') }}" type="text/javascript"></script> <form id="form_ajouter" action="{{ path('rn_phototekbundle_ajax') }}" method="post"> {{ form_widget(form) }} <input type="submit" value="{{ 'ajouter' | trans }}" /> </form> <div class="loading"></div> <div id="resultats_ajouter"> {% include 'MyAppEspritBundle:Default:liste.html.twig' with {'menu' : menu} %} </div> <script type="text/javascript"> $(function() { $("#form_ajouter").submit(function(){ // var form = $(this).serialize(); $.ajax({ type: 'post', url: "{{path('rn_phototekbundle_ajax')}}", // data: {form}, data: $(this).serialize(), success: function(data) { /*if (data['response']===true){ console.log(data); $('#'+id).remove(); }*/ $('#resultats_ajouter').html(data); $(".loading").hide(); } }); return false; }); }); </script>
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 <table> {% for a in menu %} <tr> <td>{{ a.id }}</td> <td>{{ a.position }}</td> <td>{{ a.name }}</td> <td>{{ a.lien }}</td> </tr> {% endfor %} </table>
Partager