2016-05-14 33 views
0

我想打多階梯形狀,所以我創建一個類的形式,並在控制器中的功能,我的問題是我無法提交我的形式我無法提交我的形式

我嘗試所有的事情:

  • $ formTransfertFonds-> isValid()的
  • $ formTransfertFonds-> isSubmitted()
  • $這個 - >獲得( '請求') - > isMethod( '後')

public function indexTransfertFondsCcpAction() 
    { 
     $request = $this->get('request'); 
     $transfertFonds = new TransfertFonds(); 
     $step = 1; 
     $formTransfertFonds = $this->createForm(new TransfertFondsType($step), $transfertFonds); 
     $formTransfertFonds->handleRequest($request); 

     if ($formTransfertFonds->isSubmitted()) 
     if ($this->get('request')->isMethod('post')) { 
      echo "ok"; } 
     } 

     return $this->render('@EgovPoste/Ccp/indexTransfertFondsAccountCcp.html.twig', 
      array('formTransfertFonds' => $formTransfertFonds->createView(), 
        'step' => $step 
      ) 
     ); 
    } 

我創建一個變量$步驟,它傳遞給我的形式

class TransfertFondsType extends AbstractType 
{ 
    protected $step; 
    public function __construct($step) {$this->step = $step;} 
    public function buildForm(FormBuilderInterface $builder, array $options) 
    { 
     switch ($this->step) { 
      case 1: 
       $builder 
        ->add('toNumCompte') 
        ->add('montant', 'money') 
        ->add('Suivant', 'submit') 
        ->getForm(); 

       break; 
      case 2: 
       $builder 
        ->add(
         'typeTransfert', 
         'choice', 
         array(
          'choices' => array(
           'maintenant' => 'Juste maintenant', 
           'unique' => 'Unique', 
           'permanent' => 'Permanent', 
          ), 
          'expanded' => true, 
          'multiple' => false, 
         ) 
        ) 
        ->add(
         'optionEmail', 
         'checkbox', 
         array(
          'label' => 'Recevoir une copie par e-mail de ma confirmation de virement', 
          'data' => false, 
          'required' => false, 
         ) 
        ) 
        ->add('Retour', 'submit') 
        ->add('Suivant', 'submit'); 
       break; 
      case 3: 
       break; 
      case 4: 
       break; 
     } 
    } 

    public function setDefaultOptions(OptionsResolverInterface $resolver) 
    { 
     $resolver->setDefaults(
      array(
       'data_class' => 'Egov\CoreBundle\Entity\TransfertFonds', 
      ) 
     ); 
    } 

    public function getName() { return 'TransfertFondsType';} 
} 
+0

「我無法提交我的表單」是什麼意思?發生了什麼?你期望什麼?你有沒有得到任何錯誤? – xabbuh

+0

什麼也沒有發生,當我點擊檢查元素,然後單擊提交按鈕它爲我添加一個'

Unexpected token a in JSON at position 0
' –

+0

那麼你如何實際提交表單?有沒有涉及到JavaScript的AJAX請求或類似的東西? – xabbuh

回答

0

你可以試試:

if ($formTransfertFonds->isSubmitted() && $formTransfertFonds->isValid()) { 
     //Do what you want 
    } 

傳給你變量的形式使用:

$this->createForm(new TransfertFondsType($step), $transfertFonds, array('attr' => array('step' => $step); 

並與它搭配使用:

$options['attr']['step']

+0

沒有什麼可改變的 –