2012-05-15 37 views
0

我正在开发一个使用Symfony2和树枝的应用程序。我想从模板提交一个值给控制器,这个值是使用模板中的Jquery函数设置的。我为此使用了表单和隐藏类型字段。这是我的控制器代码:表单提交中的HTTP状态代码Symfony2

public function testuaanotatuAction(Request $request) 
    { 
      $Interpretatzea = new Interpretatzea(); 
      $Interpretatzea->setMarkagarriaInterpretatua($Markagarria); 
      $form = $this->createFormBuilder($Interpretatzea) 
           ->add('MarkInterpretazioak', 'hidden') 
           ->getForm(); 

      $Erantzuna = $this->getRequest(); 

      if ($Erantzuna->getMethod() == 'POST') 
      { 
       $form->bindRequest($Erantzuna); 

      if ($form->isValid()) 
      { 
        return $this->redirect($this->generateUrl('AnotatzaileaAnotatzaileaBundle_FAQ'), 
            array('proba' => $form->get('MarkInterpretazioak'))); 
       } 
      } 

      //Anotatzeko galderaren interfazeari deitu eta azpimarratu beharreko markagarriaren MarkIdent-a pasatu 
      return $this->render('AnotatzaileaAnotatzaileaBundle:Page:AnotatuInterpretazio.html.twig', 
            array('form' => $form->createView())); 

} 

public function FAQAction($proba) 
{ 
    return $this->render('AnotatzaileaAnotatzaileaBundle:Page:FAQ.html.twig',array('proba' => $proba)); 
} 

,这是模板AnotatuInterpretazio.html.twig,我使用下一个jQuery函数值分配给隐藏字段的一部分:

<form action="{{ path('AnotatzaileaAnotatzaileaBundle_testuaanotatu') }}" method="post" {{ form_enctype(form) }} class="erreg"> 
     {{ form_widget(form) }} 

     <input type="submit" value="Egina" /> 
    </form> 

<!-- <a href="{{ path('AnotatzaileaAnotatzaileaBundle_testuaanotatu') }}"><button id="Egina_Botoia">Egina</button></a><br /> --> 


    <script type='text/javascript'> 
     $("MatchedTag").click(function() 
          { 
        $(this).toggleClass("highlight"); 
           var Erantzuna = this.id; 
           $('#hiddenval').val('this.id');//Assigning the value 
         }); 
      </script> 

浏览器显示下一个错误:

The HTTP status code "Array" is not valid. 
500 Internal Server Error - InvalidArgumentException 

任何想法为什么会这样?

回答

3

的错误是在这里:

return $this->redirect(
    $this->generateUrl('AnotatzaileaAnotatzaileaBundle_FAQ'), 
    array('proba' => $form->get('MarkInterpretazioak')) 
); 

我格式化也更加明显。您将阵列作为render()(HTTP状态码)的第二个参数传递,而不是将它传递给generateUrl()