使用通过$ .post创建的php数组

时间:2015-12-09 02:24:15

标签: javascript php jquery

我创建了一个jQuery对象数组:

my_family = [
person {
 name = “nick”,
 age = 41,
 role = “dad”
},
person {
 name = “john”,
 age = 4,
 role = “son”
},
person {
 name = “sarah”,
 age = 31,
 role = “mom”
},
]

我试图通过帖子作为php数组发布到同一页面,我已成功完成:

$.post("http://www.samepage.com", {my_family: my_family}); 

然后我想使用这些数据,但当我尝试将其添加到变量或以任何方式操纵它时页面没有响应。当我使用下面的代码时,我可以在我的firebug中看到它打印到html中,但我不能将它添加到变量或任何东西,怎么样?这是我用来在html中看到它的东西:

print_r ($_POST['my_family']);

此外,它不会打印到名为“my_family”的页面,而只是“Array”。我的主要目标是遍历数组并将每个“age”值存储到一个新数组中。是我通过post方法做的事情吗?

2 个答案:

答案 0 :(得分:1)

如果要发布一些更复杂的数据,可以尝试JSON.stringify该数据,发送数据,然后用PHP解码。

在JavaScript中:

$.post("http://www.samepage.com", {my_family: JSON.stringify(my_family)});

在PHP中:

$my_family = json_decode($_POST['my_family'], true);
print_r($my_family);

// And if you're storing 'age' values into a new array
$age_values = array();
foreach($my_family as $person) {
    array_push($age_values, $person['age']);
}

答案 1 :(得分:1)

这里看起来你正在尝试将数据读取为不是表单发布的POST,$ _POST只是一个数据的包装器,可以用于

  • application / x-www-form-urlencoded(简单的内容类型 表格帖子或

  • multipart / form-data-encoded(用于文件上传)

这里基本上你可能想要读取JSON作为php的原始输入。 //在你的php文件中..

$data = json_decode(file_get_contents('php://input'));
print_r ( $data);