如何在表单中添加动态字段? Symfony2的

时间:2015-07-27 00:16:28

标签: php forms symfony twig

我的问题是下一个: 我有一个选择字段,用户选择要购买的内容和购买的数量,然后按下“添加”按钮,其中返回似乎选择一个字段。问题不在于如何完成。也就是说,如何采取数据控制器,如修改类型等。 你推荐? Symfony2适用于这些情况吗?

我的代码:

ProdPedType.php:

<?php


namespace Proyecto\LavocBundle\Form;

use Symfony\Component\Form\AbstractType;
use Symfony\Component\Form\FormBuilderInterface;

class ProdPedidoType extends AbstractType 
{
    public function buildForm(FormBuilderInterface $builder, array $options) 
    {
        $builder->add('producto', 'entity', array(
            'class' => 'ProyectoAdminBundle:Catalogo',
            'property' => 'articulo',

        ));

        $builder->add('cantidad', 'choice', array(
            'choices' => array(
                'empty_value' => 'Elija la cantidad',
                '1' => '1',
                '5' => '5',
                '10' => '10',
                '20' => '20',
                '50' => '50',
                '100' => '100',
                '150' => '150',
                '200' => '200'

            )
        ));
        $builder->add('valor', 'choice', array(
            'choices' => array(
                'empty_value' => 'Elija el peso',
                '1' => '1',
                '5' => '5',
                '10' => '10',
                '20' => '20',
                '50' => '50',
                '100' => '100'

            )
        ));
        $builder->add('unidad', 'choice', array(
            'choices' => array(
                'KGS' => 'KGS',
                'LTS' => 'LTS'
            )
        ));

    }

    public function getName() 
    {
        return 'prodpedido_form';
    }

pedidos.html.twig:

{% extends 'AtajoBundle::layout.html.twig' %}

{% block stylesheets %}
{{ parent() }}
<link href="{{ asset('bundles/MICARPETA/css/general.css') }}" type="text/css" rel="stylesheet">
<link href="{{ asset('bundles/MICARPETA/css/Pedido/crearPedido.css') }}" type="text/css" rel="stylesheet">
<link href='http://fonts.googleapis.com/css?family=Spinnaker' rel='stylesheet' type='text/css'>
{% endblock %}

{% block content %}

<form action="{{ path('crear_pedido', { 'id': app.user.id } ) }}" method="post" {{ form_enctype(form) }}>
{{ form_start (form) }}
{{ form_errors(form) }}

    <div id="agrega">
    <ul>
        <li>{{ form_label(form.producto, 'Nombre del producto: ') }}</li>
        <li>{{ form_label(form.cantidad, 'Cantidad que va a llevar: ') }}</li>
        <li>{{ form_label(form.valor, 'Valor en numero (KGS/LTS): ') }}</li>
        <li>{{ form_label(form.unidad, 'KG o LTS: ') }}</li>

    </ul>

    <ul>
        <li>{{ form_widget(form.producto) }}</li>
        <li>{{ form_widget(form.cantidad) }}</li>
        <li>{{ form_widget(form.valor) }}</li>
        <li>{{ form_widget(form.unidad) }}</li>

    </ul>

    </div>



<div ><input id="agregarCampo" type="button" value="Agregar Producto"/></div>
<div ><input id="quitarCampo" type="button" value="Quitar Producto"/></div>
<div ><input  type="submit" id="submit"/></div>

{{ form_end (form) }}
{% endblock %}

TablasController.php:

public function pedidoAction()
    {
        $em = $this->getDoctrine()->getManager();

        $prodped= new ProdPedido();//creo la entidad de los productos
        $form = $this->createForm(new ProdPedidoType(), $prodped);

        //creo formulario del pedido que va a hacer



        return $this->render('AtajoBundle:General:pedido.html.twig', array('form' => $form->createView()));

    }

0 个答案:

没有答案