我需要以以下格式发送POST数据。
{
"buys": [
{
"productId": "1ae9ac1a37934fde92d7545cd6c93c13",
"amount": 200.00
}
]
}
当前,表单提交到的我的PHP脚本是
。<?php
$productId = $_POST['productId'];
$amount = $_POST['amount'];
$type = $_POST['name'];
//API Url
$url = 'https://********.com/post_test.php';
//Initiate cURL.
$ch = curl_init($url);
//The JSON data.
$jsonData = array(
'type' => $type,
'productId' => $productId,
'amount' => $amount
);
//Encode the array into JSON.
$jsonDataEncoded = json_encode($jsonData);
//Tell cURL that we want to send a POST request.
curl_setopt($ch, CURLOPT_POST, 1);
//Attach our encoded JSON string to the POST fields.
curl_setopt($ch, CURLOPT_POSTFIELDS, $jsonDataEncoded);
//Set the content type to application/json
curl_setopt($ch, CURLOPT_HTTPHEADER, array('Content-Type: application/json'));
//Execute the request
$result = curl_exec($ch);
?>
这是在前端提交表单后的输出,这是不正确的。我以为它会重定向到输入的URL,但我认为这不是故意的,它只是发布? (当我键入时,我想知道我看到的输出是否来自我在脚本顶部链接的网页,因为该页面只是将JSON作为字符串回显。)
{"type":"buys","productId":"2ed913357e8842e9a38f0a16eb9703a9","amount":"45866"}
我真的不知道下一步该怎么做,或者不知道该如何用Google查找教程。
更多细节,我有一个表单可以提交到上面的PHP脚本。变量$ name是请求格式的“购买”,其他变量不言自明。
我确定只有一种方法可以使用我的变量来格式化JSON,但我不知道从哪里开始。
答案 0 :(得分:1)
您的json数据应该是这样
$jsonData = array(
$type => array(
'productId' => $productId,
'amount' => $amount
)
);
输出:
{“忙碌”:{“ productId”:“ 1ae9ac1a37934fde92d7545cd6c93c13”,“金额”:“ 200.00”}}
答案 1 :(得分:1)
所以您要购买的商品为数组:
//The JSON data.
$jsonData = array(
$type =>
array(
'productId' => $productId,
'amount' => $amount
)
);
输出将为{"bugs":{"productId":"productId","amount":"amount"}}
答案 2 :(得分:1)
更改您的$jsonData
:
$jsonData = array(
'type' => $type,
'productId' => $productId,
'amount' => $amount
);
如下:
$jsonData = array();
$jsonData[ $type ] = array();
$jsonData[ $type ][] = array(
'productId' => $productId,
'amount' => $amount
);
答案 3 :(得分:1)
您可以尝试
$jsonData['buys'][] = array(
'productId' => $productId,
'amount' => $amount
);