Javascript 使用PHP中的数组解析数组
我的JS中有数组,我必须将其解析为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
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代码是怎么回事但通常情况下,