Ver Mensaje Individual
  #7 (permalink)  
Antiguo 26/02/2012, 09:25
Avatar de masterpuppet
masterpuppet
Software Craftsman
 
Fecha de Ingreso: enero-2008
Ubicación: Montevideo, Uruguay
Mensajes: 3.550
Antigüedad: 16 años, 10 meses
Puntos: 845
Respuesta: Problemas + duda

Luego el controller

Código PHP:
Ver original
  1. class WelcomeController extends Controller
  2. {
  3.     /**
  4.      * @Route("/", name="home")
  5.      * @Template()
  6.      */
  7.     public function indexAction()
  8.     {
  9.         $post  = new Post();       
  10.         $request = $this->getRequest();
  11.         $form    = $this->createForm(new PostType(), $post);       
  12.  
  13.         if('POST' == $request->getMethod()){
  14.             $form->bindRequest($request);
  15.             if ($form->isValid()) {                    
  16.                 $em = $this->getDoctrine()->getEntityManager();
  17.                 $em->persist($post);
  18.                 $em->flush();
  19.                 $this->get('session')->setFlash('notice', 'Post created successfully!');
  20.                 return $this->redirect($this->generateUrl('home'));            
  21.             }            
  22.         }
  23.         return array('form' => $form->createView());
  24.     }
  25. }

La presentación del form

Código twig:
Ver original
  1. {% extends 'AcmeDemoBundle::layout.html.twig' %}
  2.  
  3. {% block content %}
  4.     <form action="" method="post" {{ form_enctype(form) }}>        
  5.         {{ form_widget(form) }}        
  6.         <input type="submit" />
  7.     </form>
  8.  
  9.     <ul class="record_actions">
  10.         <li>
  11.             <a href="#" class="jslink">
  12.                 Add a Image
  13.             </a>
  14.         </li>
  15.     </ul>
  16. {% endblock %}

y por último unos bits de js

Código Javascript:
Ver original
  1. google.load("jquery", "1.7.1");            
  2. google.setOnLoadCallback(function(){
  3.     (function($){
  4.         function add() {
  5.             var collectionHolder = $('#acme_demobundle_posttype_images');
  6.             var prototype = collectionHolder.attr('data-prototype');
  7.             form = prototype.replace(/\$\$name\$\$/g, collectionHolder.children().length);
  8.             form =  $(form).filter('div').first().html($(form).html() +'<a class="delete_link" href="#">remove</a>');
  9.             collectionHolder.append(form);
  10.         }
  11.        
  12.         $('a.jslink').click(function(event){
  13.             event.preventDefault();
  14.             add();
  15.         });
  16.        
  17.         $(document).on('click', 'a.delete_link',function(event){
  18.             $(event.currentTarget).parent().remove();
  19.         });
  20.     })(jQuery);
  21. });

Como te podrás dar cuenta el drawback de todo esto es la dependencia en js, igual creo que la idea se entiende y espero que te sirva al menos de base.

Saludos.
__________________
http://es.phptherightway.com/
thats us riders :)

Última edición por masterpuppet; 27/02/2012 a las 05:26 Razón: Typos