jquery - symfony2使用ajax模拟多个提交按钮

标签 jquery symfony form-submit symfony-forms symfony-2.3

2.3 的新功能有多个提交按钮
但我正在使用 ajax 发送表单

$.post("{{ path('order_ad_banner') }}",
        $('#adOrderForm').serialize() + "&" + $.param({url: "{{ url }}"}),
        function (data) {
            $('#formWindow').html(data);
        }
    );

这是我的按钮:

public function buildForm(FormBuilderInterface $builder, array $options)
{
    $builder
       ....
        ->add('step2submit', 'submit', array('validation_groups' => array("order step 2")))
        ->add('step3submit', 'submit')
        ->add('step4submit', 'submit')
    ;
}

如何使用 ajax 模拟“step2submit”按钮的提交?

编辑:找到解决方案 -> 在发布之前将隐藏字段添加到表单

var input = $("<input>").attr("type", "hidden").attr("name",     'adOrder[step2submit]').val("");
    $('#adOrderForm').append(input);
    $.post("{{ path('order_ad_banner') }}",
            $('#adOrderForm').serialize() + "&" + $.param({url: "{{ url }}"}),
            function (data) {
                $('#formWindow').html(data);
            }
    );

最佳答案

操纵 dom 可能不是最好的解决方案。 由于浏览器将单击的按钮添加为另一个没有值的参数,因此您可以执行相同的操作并将其手动添加到序列化数据中,然后再通过 ajax 发送。 使用此代码,您只需将“submit-button”类添加到按钮中,并且命名更加灵活(因此,如果您在 php 代码中重命名按钮,它仍然可以工作)。

$('.submit-button').on('click', function(){
  var data = $(this).parents('form').first().serializeArray();
  data.push( {'name':$(this).attr('name')});
  $.ajax({
      type: 'POST',
      url: $(this).parents('form').first().attr('action'),
      dataType: 'html',
      data : data,
      success: function(answer) {
        //do something with the answer
      },
      error: function() {
      },
      complete: function() {
      }
  });
  return false;
});

关于jquery - symfony2使用ajax模拟多个提交按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22691269/

相关文章:

php - 带有 php 的 html 文本形式没有插入到 MySQL 服务器中

forms - Spring中的重复表单提交

java - 使用 JSON 和 jQuery 进行动态表绑定(bind)

javascript - 从字符串中删除元素并连接它的更好方法是什么?

php - 带有查询生成器的表单生成器无法访问 Join 上的属性

unit-testing - Symfony2 : Mocked service is set in the container but not used by the controller (it still uses the original service)

symfony - 对 Symfony Messenger 使用默认传输(跳过 amqp)

javascript - 使用 javascript 自动提交表单是不好的做法吗?

php - 从jQuery将日期插入mysql数据库

javascript - jQuery 单击隐藏所有模态框