我有一个表单,用户可以在其中添加任意数量的输入字段。 这些被发送到.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的情况下发布?
答案 0 :(得分:1)
您希望使用jQuery' .serializeArray()或.serialize(),具体取决于您的PHP对数据的期望。
区别在于.serializeArray()创建了一个JSON数组,而.serialize()创建了标准的URL编码键/值对。
答案 1 :(得分:0)
如果你想通过AJAX发送它并且你正在使用jquery .serialize()
将更容易。您可以将所有输入放在表单中,然后使用$(form).serialize()
作为数据。
以下是.serialize()
答案 2 :(得分:0)
var values = {};
$.each($('#myForm').serializeArray(), function(i, field) {
values[field.name] = field.value;
});
这样,您的value数组将包含“myForm”
形式的所有字段