Javascript 每个ajax请求发送一个数组
我想将数组(可以是任意长度)作为1个参数作为ajax请求发送,类似于:Javascript 每个ajax请求发送一个数组,javascript,arrays,ajax,Javascript,Arrays,Ajax,我想将数组(可以是任意长度)作为1个参数作为ajax请求发送,类似于: mandatoryFields = []; for (i = 1; i <= post_type_max_elements; i++) { ... var mandatoryItem = [] mandatoryItem['optionName'] = optionName; mandatoryItem['optionValue'] = optionValue; } var data
mandatoryFields = [];
for (i = 1; i <= post_type_max_elements; i++) {
...
var mandatoryItem = []
mandatoryItem['optionName'] = optionName;
mandatoryItem['optionValue'] = optionValue;
}
var data = {
action: 'update_mandatory_fields',
post_type: select_post_type,
mandatoryFields: mandatoryFields
};
jQuery.ajax({
type: 'POST',
dataType: "json",
data: data,
...
mandatoryFields=[];
对于(i=1;i,可以使用JSON.stringify()
将数组转换为字符串
该方法将JavaScript值转换为JSON字符串,如果指定了替换函数,则可以选择替换值;如果指定了替换数组,则可以选择仅包含指定的属性
在您的示例中:
$.ajax({
type: "POST",
url: url,
data: {yourData: JSON.stringify(data)},
success: function(response){
//Callback function - do something if the request succeeded
}
});
请注意,您还可以使用而不是$.ajax()
要使用php
重建数组,可以使用JSON.stringify()
将数组转换为字符串
该方法将JavaScript值转换为JSON字符串,如果指定了替换函数,则可以选择替换值;如果指定了替换数组,则可以选择仅包含指定的属性
在您的示例中:
$.ajax({
type: "POST",
url: url,
data: {yourData: JSON.stringify(data)},
success: function(response){
//Callback function - do something if the request succeeded
}
});
请注意,您还可以使用而不是$.ajax()
要使用php
重建数组,可以使用JSON.stringify()
将数组转换为字符串
该方法将JavaScript值转换为JSON字符串,如果指定了替换函数,则可以选择替换值;如果指定了替换数组,则可以选择仅包含指定的属性
在您的示例中:
$.ajax({
type: "POST",
url: url,
data: {yourData: JSON.stringify(data)},
success: function(response){
//Callback function - do something if the request succeeded
}
});
请注意,您还可以使用而不是$.ajax()
要使用php
重建数组,可以使用JSON.stringify()
将数组转换为字符串
该方法将JavaScript值转换为JSON字符串,如果指定了替换函数,则可以选择替换值;如果指定了替换数组,则可以选择仅包含指定的属性
在您的示例中:
$.ajax({
type: "POST",
url: url,
data: {yourData: JSON.stringify(data)},
success: function(response){
//Callback function - do something if the request succeeded
}
});
请注意,您还可以使用而不是$.ajax()
要使用php
重建数组,您可以使用jQuery,默认情况下,以php方式序列化数组:
$.ajax({
url: "http://example.com/",
data: {
foo: [1, 2]
}
})
将序列化为http://example.com/?foo[]=1&foo[]=2
。如果您的服务器端框架支持这种类型的参数传递,您应该在parameters对象中重建一个数组
如果不是,并且您的服务器支持相同名称的多个参数值,则可以$.ajaxSetup({traditional:true});
;这将使ajax
序列化为http://example.com/?foo=1&foo=2
正如maja所提到的,第三个选项是显式JSON编码(在服务器端,JSON解码)所有复合值
由于您没有指定服务器端解决方案的功能,所以我无法告诉您可以使用前两种优雅的方案中的哪一种;第三种,手动方案是万无一失的。jQuery默认情况下以PHP方式序列化数组:
$.ajax({
url: "http://example.com/",
data: {
foo: [1, 2]
}
})
将序列化为http://example.com/?foo[]=1&foo[]=2
。如果您的服务器端框架支持这种类型的参数传递,您应该在parameters对象中重建一个数组
如果不是,并且您的服务器支持相同名称的多个参数值,则可以$.ajaxSetup({traditional:true});
;这将使ajax
序列化为http://example.com/?foo=1&foo=2
正如maja所提到的,第三个选项是显式JSON编码(在服务器端,JSON解码)所有复合值
由于您没有指定服务器端解决方案的功能,所以我无法告诉您可以使用前两种优雅的方案中的哪一种;第三种,手动方案是万无一失的。jQuery默认情况下以PHP方式序列化数组:
$.ajax({
url: "http://example.com/",
data: {
foo: [1, 2]
}
})
将序列化为http://example.com/?foo[]=1&foo[]=2
。如果您的服务器端框架支持这种类型的参数传递,您应该在parameters对象中重建一个数组
如果不是,并且您的服务器支持相同名称的多个参数值,则可以$.ajaxSetup({traditional:true});
;这将使ajax
序列化为http://example.com/?foo=1&foo=2
正如maja所提到的,第三个选项是显式JSON编码(在服务器端,JSON解码)所有复合值
由于您没有指定服务器端解决方案的功能,所以我无法告诉您可以使用前两种优雅的方案中的哪一种;第三种,手动方案是万无一失的。jQuery默认情况下以PHP方式序列化数组:
$.ajax({
url: "http://example.com/",
data: {
foo: [1, 2]
}
})
将序列化为http://example.com/?foo[]=1&foo[]=2
。如果您的服务器端框架支持这种类型的参数传递,您应该在parameters对象中重建一个数组
如果不是,并且您的服务器支持相同名称的多个参数值,则可以$.ajaxSetup({traditional:true});
;这将使ajax
序列化为http://example.com/?foo=1&foo=2
正如maja所提到的,第三个选项是显式JSON编码(在服务器端,JSON解码)所有复合值
由于您没有指定服务器端解决方案的功能,因此我无法告诉您可以使用前两种优雅的方案中的哪一种;第三种,手动方案是万无一失的。我在客户端制作:
mandatoryFields[mandatoryFields.length]= JSON.stringify( {optionName: optionName, optionValue: optionValue} )
在服务器上,我看到$_POST(php)var有以下价值:
update_mandatory_fields $_POST::Array
(
[action] => update_mandatory_fields
[post_type] => post
[mandatoryFields] => Array
(
[0] => {\"optionName\":\"post_type_mandatory_selection:post::element_1\",\"optionValue\":\"post_type_mandatory_selection:post::element_1:C\"}
)
)
在循环中我没有找到正确的方法如何处理字符串
[0]=>
哪条路对 我在客户机上制作:
mandatoryFields[mandatoryFields.length]= JSON.stringify( {optionName: optionName, optionValue: optionValue} )
在服务器上,我看到$_POST(php)var有以下价值:
update_mandatory_fields $_POST::Array
(
[action] => update_mandatory_fields
[post_type] => post
[mandatoryFields] => Array
(
[0] => {\"optionName\":\"post_type_mandatory_selection:post::element_1\",\"optionValue\":\"post_type_mandatory_selection:post::element_1:C\"}
)
)
在循环中我没有找到正确的方法如何处理字符串
[0]=>
哪条路对 我在客户机上制作:
mandatoryFields[mandatoryFields.length]= JSON.stringify( {optionName: optionName, optionValue: optionValue} )
在服务器上,我看到$_POST(php)var有以下价值:
update_mandatory_fields $_POST::Array
(
[action] => update_mandatory_fields
[post_type] => post
[mandatoryFields] => Array
(
[0] => {\"optionName\":\"post_type_mandatory_selection:post::element_1\",\"optionValue\":\"post_type_mandatory_selection:post::element_1:C\"}
)
)
在循环中我没有找到正确的方法如何处理字符串
[0]=>
哪条路对 我在客户机上制作:
mandatoryFields[mandatoryFields.length]= JSON.stringify( {optionName: optionName, optionValue: optionValue} )
和服务