每个jquery AJAX发布一个可变长度的形式

时间:2014-10-13 21:53:06

标签: javascript php jquery ajax forms

我有一个表单,用户可以在其中添加任意数量的输入字段。 这些被发送到.php,它返回提交的结果。 这意味着我事先不能知道$ _POST的长度(而且我也不想)。

到目前为止我找到的所有内容都可以手动将字段输入到ajax请求中

// Get some values from elements on the page:
var $form = $( this ),
term = $form.find( "input[name='s']" ).val(),
url = $form.attr( "action" );

(来自jQuery api) 但只有当我知道会有多少个字段时才会有用。 我只是希望发布所有字段(无论添加多少)...

是否可以遍历所有字段? 或者只是发送正常的$ _POST,因为它将在没有ajax的情况下发布?

3 个答案:

答案 0 :(得分:1)

您希望使用jQuery' .serializeArray().serialize(),具体取决于您的PHP对数据的期望。

区别在于.serializeArray()创建了一个JSON数组,而.serialize()创建了标准的URL编码键/值对。

答案 1 :(得分:0)

如果你想通过AJAX发送它并且你正在使用jquery .serialize()将更容易。您可以将所有输入放在表单中,然后使用$(form).serialize()作为数据。

以下是.serialize()

的jquery文档

http://api.jquery.com/serialize/

答案 2 :(得分:0)

var values = {}; $.each($('#myForm').serializeArray(), function(i, field) { values[field.name] = field.value; });

这样,您的value数组将包含“myForm”

形式的所有字段