我正在构建一个 Symfony 2 应用程序。我有一个带有一个复选框的表单,我想通过 jquery ajax 提交。一切正常,但是将复选框输入的实际值发送到我的控制器时存在问题。可以选中或取消选中,但每次都有一个 TRUE 值。
这是我的 JS 代码:
$( 'form' ).submit( function( e ) {
e.preventDefault();
var values = {};
$.each( $('input, select ,textarea', '#modal form'), function(i, field) {
values[field.name] = field.value;
});
//when I send var "values" into firebug console, there is real value, but later in controller isnt
$.ajax({
type : $(this).attr( 'method' ),
url : $(this).attr( 'action' ),
data : values,
dataType : "json",
cache : false,
success : function(response) {
//some code
}
});
这里是我的控制器:
public function indexAction()
{
$request = $this->getRequest();
$em = $this->getDoctrine()->getManager();
$repo = $em->getRepository('MyBundle:MyEntity');
$slides = $repo->findAll();
$form = $this->createForm(new MyFormType($this->get('router')));
if ( $request->isMethod( 'POST' ) ) {
$form->handleRequest( $request );
if ( $form->isValid() ) {
$data = $form->getData();
//In $data['active'], what is my checkbox field is always TRUE value :(
//another operation with data...
$response['something'] = something;
return new JsonResponse( $response );
}
return array('slides'=>$slides,'form' => $form->createView());
}
我编辑的其他字段(文本、文本区域)已正确发送到控制器。问题仅在复选框字段中。