Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 每个ajax请求发送一个数组_Javascript_Arrays_Ajax - Fatal编程技术网

Javascript 每个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

我想将数组(可以是任意长度)作为1个参数作为ajax请求发送,类似于:

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}  )
和服务