我是通过POST方法发送包含表单变量的Ajax请求。
Ajax请求的数据如下:
data : {
somevar1: 'someval1',
somevar2: 'someval2',
somevar3: 'someval3',
somevar4: 'someval4',
form: FORMDATA
}
正如您所看到的,除了基本表单数据之外,我还传递了一些其他数据。
这意味着我无法使用jQuery的.serialize()
方法。
我希望最终得到的是可以发送的东西,因此在另一侧只需执行:
$_POST['form']['fieldname']
是否有内置函数可做到这一点?
或者我需要做什么才能创建一个这样的函数?
在表单上运行类似于以下功能的函数的可能性:
function postArray(form){
var data = {};
var name, value = null;
$(form).children('textarea, input, select'){
name = this.name;
data.name = $(this).val();
}
return data;
}
在表单上可以工作。
并且拥有
data : {
somevar1: 'someval1',
somevar2: 'someval2',
somevar3: 'someval3',
somevar4: 'someval4',
form: postArray(form)
}
我可以使用 .serializeArray();
这个方法,但是在另一方面我得到了以下内容:
这样做是否可行?
Array
(
[0] => Array
(
[name] => name1
[value] => val1
),
[1] => Array
(
[name] => name2
[value] => val2
)
...
[8] => Array
(
[name] => name8
[value] => val8
)
)
这个答案很接近,但是需要我执行以下操作:
a: 循环数组并将其转换为所需格式
b: 每次使用时都要循环查找正确的键