Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/297.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 使用PHP中的数组解析数组_Javascript_Php_Arrays_Post - Fatal编程技术网

Javascript 使用PHP中的数组解析数组

Javascript 使用PHP中的数组解析数组,javascript,php,arrays,post,Javascript,Php,Arrays,Post,我的JS中有数组,我必须将其解析为PHP: var transfer_data = { cl_name : $("#free_1_1_title").val(), contact_name : $("#free_1_1_name").val(), contact_lastname : $("#free_1_1_lastname").val(), contact_email : $("#free_1_1

我的JS中有数组,我必须将其解析为PHP:

var transfer_data = {
            cl_name : $("#free_1_1_title").val(),
            contact_name : $("#free_1_1_name").val(),
            contact_lastname : $("#free_1_1_lastname").val(),
            contact_email : $("#free_1_1_email_1").val(),
            cl_alley : $("#free_1_1_select_1").val(),
            cl_services : $("#free_1_1_select_2").val(),
            cl_tags : {
                1 : $("classified_tag_1").val(),
                2 : $("classified_tag_2").val(),
                3 : $("classified_tag_3").val(),
                4 : $("classified_tag_4").val(),
                5 : $("classified_tag_5").val()
            }
        };
和转让:

$.ajax({
            url: "classifieds/add_new/addNewCl_1_1",
            type: 'POST',
            dataType: 'json',
            data: transfer_data, 
            success: function(data) { 
                  console.log(data.response);
            },
            error: function (e) {
                console.log(e.message);
            }
        });
我想这样接受:

Array
(
    [cl_name] => value
    [contact_name] => value
    [contact_lastname] => value
    [contact_email] => value
    [cl_alley] => value
    [cl_services] => value
    [cl_tags] => array(1 => value, 2 => value...)
)
那我该怎么做呢?我试图用
print\r($\u POST)打印接收数据

而我只有

Array
(
    [cl_name] => value
    [contact_name] => value
    [contact_lastname] => value
    [contact_email] => value
    [cl_alley] => value
    [cl_services] => value
)

我缺少带有值的
cl\u标记

这样推数组不是个好主意

JSON.stringify:它将js对象转换为JSON对象

这样做

step1.Create array/object.

step 2.JSON.stringify(array) to encode your array in JavaScript,

step 3.$array=json_decode($_POST['jsondata']);//in your php
还有一件事:

不能为javascript对象提供数字键

例如:

var object = {
 1:"wrong_way",
'1':true,
'alphabetic_key':"ideal";//boolean or number or string are valid as value.
}
更新:

如评论中所述:

使用数字作为对象键并不是最好的约定,但如果这样做,javascript引擎会在幕后将它们转换为字符串

但是在访问这些对象时必须小心

Object.'1';//valid
object.1;//invalid
object[1];//valid

这样推动阵列不是一个好主意

JSON.stringify:它将js对象转换为JSON对象

这样做

step1.Create array/object.

step 2.JSON.stringify(array) to encode your array in JavaScript,

step 3.$array=json_decode($_POST['jsondata']);//in your php
还有一件事:

不能为javascript对象提供数字键

例如:

var object = {
 1:"wrong_way",
'1':true,
'alphabetic_key':"ideal";//boolean or number or string are valid as value.
}
更新:

如评论中所述:

使用数字作为对象键并不是最好的约定,但如果这样做,javascript引擎会在幕后将它们转换为字符串

但是在访问这些对象时必须小心

Object.'1';//valid
object.1;//invalid
object[1];//valid

这样推动阵列不是一个好主意

JSON.stringify:它将js对象转换为JSON对象

这样做

step1.Create array/object.

step 2.JSON.stringify(array) to encode your array in JavaScript,

step 3.$array=json_decode($_POST['jsondata']);//in your php
还有一件事:

不能为javascript对象提供数字键

例如:

var object = {
 1:"wrong_way",
'1':true,
'alphabetic_key':"ideal";//boolean or number or string are valid as value.
}
更新:

如评论中所述:

使用数字作为对象键并不是最好的约定,但如果这样做,javascript引擎会在幕后将它们转换为字符串

但是在访问这些对象时必须小心

Object.'1';//valid
object.1;//invalid
object[1];//valid

这样推动阵列不是一个好主意

JSON.stringify:它将js对象转换为JSON对象

这样做

step1.Create array/object.

step 2.JSON.stringify(array) to encode your array in JavaScript,

step 3.$array=json_decode($_POST['jsondata']);//in your php
还有一件事:

不能为javascript对象提供数字键

例如:

var object = {
 1:"wrong_way",
'1':true,
'alphabetic_key':"ideal";//boolean or number or string are valid as value.
}
更新:

如评论中所述:

使用数字作为对象键并不是最好的约定,但如果这样做,javascript引擎会在幕后将它们转换为字符串

但是在访问这些对象时必须小心

Object.'1';//valid
object.1;//invalid
object[1];//valid

您需要在js中更改变量名

因此,工作代码如下:

var data = {
    q:1, 
    'w[]': [1,3,4,5,7],
    'e[t1]': 1,
    'e[t2]': 2,
    'e[t3]': [1,2,3,4,5]
}
$.ajax({url:'/', type: 'POST', data: data});
在chrome调试中,我们看到以下内容:

q:1
w[]:1
w[]:3
w[]:4
w[]:5
w[]:7
e[t1]:1
e[t2]:2
e[t3][]:1
e[t3][]:2
e[t3][]:3
e[t3][]:4
e[t3][]:5

您需要在js中更改变量名

因此,工作代码如下:

var data = {
    q:1, 
    'w[]': [1,3,4,5,7],
    'e[t1]': 1,
    'e[t2]': 2,
    'e[t3]': [1,2,3,4,5]
}
$.ajax({url:'/', type: 'POST', data: data});
在chrome调试中,我们看到以下内容:

q:1
w[]:1
w[]:3
w[]:4
w[]:5
w[]:7
e[t1]:1
e[t2]:2
e[t3][]:1
e[t3][]:2
e[t3][]:3
e[t3][]:4
e[t3][]:5

您需要在js中更改变量名

因此,工作代码如下:

var data = {
    q:1, 
    'w[]': [1,3,4,5,7],
    'e[t1]': 1,
    'e[t2]': 2,
    'e[t3]': [1,2,3,4,5]
}
$.ajax({url:'/', type: 'POST', data: data});
在chrome调试中,我们看到以下内容:

q:1
w[]:1
w[]:3
w[]:4
w[]:5
w[]:7
e[t1]:1
e[t2]:2
e[t3][]:1
e[t3][]:2
e[t3][]:3
e[t3][]:4
e[t3][]:5

您需要在js中更改变量名

因此,工作代码如下:

var data = {
    q:1, 
    'w[]': [1,3,4,5,7],
    'e[t1]': 1,
    'e[t2]': 2,
    'e[t3]': [1,2,3,4,5]
}
$.ajax({url:'/', type: 'POST', data: data});
在chrome调试中,我们看到以下内容:

q:1
w[]:1
w[]:3
w[]:4
w[]:5
w[]:7
e[t1]:1
e[t2]:2
e[t3][]:1
e[t3][]:2
e[t3][]:3
e[t3][]:4
e[t3][]:5


可能是这样的,。cl_标记:[]与cl_标记不同:{}您使用的是什么版本的jQuery?我用几个版本尝试了你的代码,在所有的版本中我都得到了想要的结果。1.10.2在这个时刻,那是我正在使用的同一个版本。我创建了一个测试脚本来演示它的工作:它可能是这样的,。cl_标记:[]与cl_标记不同:{}您使用的是什么版本的jQuery?我用几个版本尝试了你的代码,在所有的版本中我都得到了想要的结果。1.10.2在这个时刻,那是我正在使用的同一个版本。我创建了一个测试脚本来演示它的工作:它可能是这样的,。cl_标记:[]与cl_标记不同:{}您使用的是什么版本的jQuery?我用几个版本尝试了你的代码,在所有的版本中我都得到了想要的结果。1.10.2在这个时刻,那是我正在使用的同一个版本。我创建了一个测试脚本来演示它的工作:它可能是这样的,。cl_标记:[]与cl_标记不同:{}您使用的是什么版本的jQuery?我用几个版本尝试了你的代码,在所有的版本中我都得到了想要的结果。1.10.2在这个时刻,那是我正在使用的同一个版本。我创建了一个测试脚本来演示它的工作原理:将数字作为对象键是完全合法的。解析器将简单地将它们转换为字符串<代码>1:'val'
'1':'val'
在功能上是等效的。-唯一的问题是当您尝试访问元素时。
obj.1
语法无效,它必须是
obj['1']
,尽管
obj[1]
也应该有效。将数字作为对象键是完全合法的。解析器将简单地将它们转换为字符串<代码>1:'val'和
'1':'val'
在功能上是等效的。-唯一的问题是当您尝试访问元素时。
obj.1
语法无效,它必须是
obj['1']
,尽管
obj[1]
也应该有效。将数字作为对象键是完全合法的。解析器将简单地将它们转换为字符串<代码>1:'val'和
'1':'val'
在功能上是等效的。-唯一的问题是当您尝试访问元素时。
obj.1
语法无效,它必须是
obj['1']
,尽管
obj[1]
也应该有效。将数字作为对象键是完全合法的。解析器将简单地将它们转换为字符串<代码>1:'val'和
'1':'val'
在功能上是等效的。-唯一的问题是当您尝试访问元素时。
obj.1
语法无效,它必须是
obj['1']
,尽管
obj[1]
也应该有效。这确实不必要。jQuery通常会自动为您执行此操作。事实上,如果指定
w[]
作为它们的键名,则会导致它在元素周围添加一个额外的数组,从而有效地将其转换为:
'w[][0]':'val'
-我不知道OPs代码是怎么回事但通常情况下,