【发布时间】:2019-06-05 18:07:03
【问题描述】:
我正在接收来自一个表单的 POST 数据,该表单是一个数组以及一些其他字段。我只需要获取数组数据,并在我自己的 post 请求中将其作为 json 传递给后端服务器。
$_POST 数据如下所示:
Array (
[smsgte_submit] => Y
[alias] => Array (
[1] => Array (
[name] => mywife
[number] => 6135552001
[ssid] => 1 )
[2] => Array (
[name] => daughter
[number] => 6135553001
[ssid] => )
)
)
我只想捕获别名条目并将它们编码为 json。
我成功地将整个 $_POST 数组编码为 json:
$data['jsonpost'] = json_encode($_POST);
按预期对数组进行编码,但是,我只想要别名数组,所以我尝试了以下方法:
$data['jsonpost'] = json_encode($_POST['alias']);
但这不起作用,它将 null 返回给服务器。然后我尝试了:
$data['jsonpost'] = json_encode(array_filter($_POST, 'alias'));
但返回 null。
也许我需要重新设计我的表单,但最后,我想要一个看起来像这样的 json 数组:
{
"alias": {
"name":"mywife",
"number":"6135552001",
"ssid":"1"
},
"alias": {
"name":"daughter",
"number":"6135553001",
"ssid":"2"
}
}
【问题讨论】:
-
这应该可以工作,因为你已经展示了
json_encode($_POST['alias'])但是$_POST一定不是你展示的。print_r($_POST);但是,这不起作用是什么意思? -
我更新了帖子以反映
print_r($_POST);的输出,但是,除了将其更清晰地排列为数组之外,我认为没有任何变化。json_encode($_POST['alias'])向服务器发送 null。 -
我不相信你。
json_encode返回一个字符串或 false。检查错误和警告? -
你能给我们看看 print_r($_POST); 的结果吗
-
print_r($_POST)的输出是Array ( [smsgte_submit] => Y [alias] => Array ( [1] => Array ( [name] => mywife [number] => 6135552001 [ssid] => 1 ) [2] => Array ( [name] => daughter [number] => 6135553001 [ssid] => 2) ) )