使用jQuery ajax添加多个数据

Hen*_*son 5 ajax jquery

我可以通过定位表单类来处理我的表单值<form class="my_form_class">:

jQuery.ajax({
        type:"GET",
        url: "/wp-admin/admin-ajax.php",
        data: my_form_class,
        context: this,
        success:function(data){

            // do stuff
        }
});
Run Code Online (Sandbox Code Playgroud)

这非常有效.

但我想添加更多数据,所以我试过:

data: { my_form_class, security : 'foo' },
Run Code Online (Sandbox Code Playgroud)

那没起效.我在这做错了什么?我试过了:

data: { my_form_class : my_form_class, security : 'foo' },
Run Code Online (Sandbox Code Playgroud)

它显然也无效.

Mar*_*kic 6

表单的数据可以序列化,数据可以作为字符串发送:)我没有测试这个,但它应该工作:)

jQuery.ajax({
        type:"GET",
        url: "/wp-admin/admin-ajax.php",
        data: $('.my_form_class').serialize() + "&security=foo",
        context: this,
        success:function(data){

            // do stuff
        }
});
Run Code Online (Sandbox Code Playgroud)


gae*_*noM 3

根据jQuery ajax的定义

数据

类型:PlainObject 或 String 或 Array 要发送到服务器的数据。如果还不是字符串,它将转换为查询字符串。它附加到 GET 请求的 url 中。请参阅 processData 选项以阻止此自动处理。对象必须是键/值对。如果 value 是一个数组,jQuery 将根据传统设置的值(如下所述)序列化具有相同键的多个值。

您可以使用jquery paramjQuery serialize

$('.my_form_class').serialize()  + '&' + $.param({security : 'foo'});
Run Code Online (Sandbox Code Playgroud)

我的片段:

$('.my_form_class').serialize()  + '&' + $.param({security : 'foo'});
Run Code Online (Sandbox Code Playgroud)
$(function () {
  $('#btn').on('click', function(e) {
    console.log($('.my_form_class').serialize()  + '&' + $.param({security : 'foo'}));
    $.ajax({
      type:"GET",
      url: "/wp-admin/admin-ajax.php",
      data: $('.my_form_class').serialize()  + '&' + $.param({security : 'foo'}),
      context: this,
      success:function(data){
        // do stuff
      }
    }).fail(function(jqXHR, textStatus, errorThrown) {
      console.log('ajax error: ' + textStatus)
    });
  });
});
Run Code Online (Sandbox Code Playgroud)