JS 文本到 PHP 的数组
JS array of literals to PHP
在JS中,我有以下内容:
var languages = [{
language: "da"
listening: "A1"
}, {
language: "en"
listening: "B2"
}];
在 PHP 中,经过$.ajax
调用后,我最终得到的是:
array(4) {
[0]=>
array(1) {
["language"]=>
string(2) "da"
}
[1]=>
array(1) {
["listening"]=>
string(2) "A1"
}
[2]=>
array(1) {
["language"]=>
string(0) "en"
}
...
}
我需要的是这样的东西:
array(2) {
[0]=>
array(2) {
["language"]=>
string(2) "da",
["listening"]=>
string(2) "A1"
}
[1]=>
array(2) {
["language"]=>
string(2) "en",
["listening"]=>
string(2) "B1"
}
}
有没有办法简单地做到这一点?我必须迭代和处理它吗?
使用 JSON.stringify
对数据结构进行编码,将生成的字符串作为单个参数发送,然后在 PHP 中使用 json_decode($json, true)
对其进行解码。
.JS
var data = [
{ language: "da", listening: "A1"},
{ language: "en", listening: "B2"}
];
// ...
$.post(url, { data: JSON.stringify(data) }, function() { ... });
.PHP
if (isset($_POST['data'])) {
$data = json_decode($_POST['data'], true);
// process this array of arrays
}
我假设你的意思是这样的:
var languages = [{
language: "da"
listening: "A1"
}, {
language: "en"
listening: "B2"
}];
所以你实际上有两个对象要传输到 PHP,打包到一个数组中,对吧?尝试使用 JSON:
创建一个 JSON 字符串并将其发送到服务器:
$.ajax({
url: '...',
type: 'POST',
data: { json: JSON.stringify(languages)}
});
在服务器端,您现在将拥有 $_POST['json'] 中的 json 字符串,您可以使用以下命令对其进行解码:
json_decode($_POST['json'], true);
获取(多维)数组,或
json_decode($_POST['json']);
对于包含两个对象的数组。
编辑
如果你有"魔术引号",你必须先去掉反斜杠:
json_decode(stripslashes($_POST['json']), true);
呵呵,
您好:
我认为你应该尝试如下JavaScript
{
"languages": [
{"language":"da","listening":"A1"},
{"language":"en", "listening":"B2"}
]
}
相关文章:
- 将数组从PHP传递到Javascript
- MongoDB (php) - 以数组而不是多个属性的形式返回文档属性
- 如何使用Javascript将空数组发送到PHP服务器
- 调用php数组中的JS函数
- PHP中的数组输出
- 将带有多维数组的表单从Javascript提交到PHP
- 将数组从javascript格式化为php的更好方法,反之亦然
- 将PHP变量分配给PHP数组
- php数组转换为javascript
- 如何用javascript打印php数组
- 将PHP数组传递给js变量
- 如何在php中读取没有任何键的JSON数组
- 从javascript访问属性多端数组PHP
- 替换辅助数组 PHP 中的值
- JavaScript发送变量,但插入数组PHP不能正常工作
- 在数组php中中断数组
- 如何通过javascript数组php laravel4
- 多维json编码关联数组php到JS
- (删除重复)重新索引多维数组PHP jquery
- 我可以't在jQuery中获取数组PHP编码