symfony发送表单请求而不提交

时间:2016-08-04 12:13:57

标签: javascript php forms symfony

我想使用选择类型发送请求,没有提交按钮,我尝试使用javascript但没有结果

我的表单代码:

$form = $this->createFormBuilder()
   ->add('language', 'choice', array(
       'choices' => array(
             'ar' => 'Arabic',
             'fr' => 'French',
             'es' => 'Espagnol',
             'nl' => 'Dutch',
             'ja' => 'Japanese',
             'en' => 'English',
             'ko' => 'Korean',
             'it' => 'Italian',
             'ru' => 'Russian',
       ),
       'required'    => false,
       'placeholder' => 'Click to Choose Language..',
       'attr' => array(
                   'id' => 'field',
                   'class' => 'controls',
                   'data-rel' => 'chosen'
                )
  ))
  ->getForm();

我的枝条如下:

<form  action="{{ path('test_test') }}"  method="POST" {{ form_enctype(form) }}>
          {{ form_widget(form.language, { 'attr': {'class': 'select2'} }) }}
</form>

我使用的javascript代码是:

<script type="text/javascript">
   $('#field').change(function() {
       $(this).closest('form').trigger('submit');
   });
</script>

1 个答案:

答案 0 :(得分:2)

你可以像这样使用Jquery submit函数:

jQuery(function($) {
   $(".select2").change(function() { //put class or id of your select input
      $('#id_of_your_form').submit();
   });
});

编辑:

如果您使用的是select2插件(您有示例here):

jQuery(function($) {
     $('.select2').select2()
     .on("change", function(e) {
          $('#id_of_your_form').submit();
     })
});

然后你可以在你的Symfony Controller中发送POST数据,如下所示:

public function getDataAction(Request $request)
{
   dump($request->request->get('name of your select input');exit;
}