【发布时间】:2023-03-16 18:49:01
【问题描述】:
我正在通过包含表单变量的帖子进行 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: 每次我使用它时都会循环它以找到正确的键
【问题讨论】:
-
因为,另一方面,在执行 print_r($_POST['form']) 时,我会返回似乎应该是 get 字符串的内容。虽然我可以在服务器端爆炸,但我不想这样做。
-
您的额外变量是通过 js 计算出来的还是随页面提供的?
-
与页面(是的,我知道我总是可以将它们设置为隐藏输入,但是表单是通过 ajax 生成的,并且视情况而定)
标签: javascript jquery forms post