【问题标题】:getting JSON data to PHP获取 JSON 数据到 PHP
【发布时间】:2014-08-12 22:35:17
【问题描述】:

JSON 有问题。 我有这段来自 JS 的代码:

type: "POST",
url: '/form.php',
data: JSON.stringify(this.getValues()),
contentType: 'application/json',
success: function(data){
    that.afterSubmit();
},

发布后我得到了这个:

[{"role":"name","label":"Name","value":"ttere"},{"role":"phone","label":"Phone","value":"(454) 564-56-45"}]

没关系,但我无法将此参数获取到 php 文件:

$data = json_decode($_POST['Object']);
$response = 'Get params '.count($data).'\n';
foreach ($data as $key=>$value) {
    $response .= 'Par: '.$key.'; Val: '.$value.'\n';
}
echo $response;

【问题讨论】:

  • 我没明白你想在这里做什么?您是否尝试创建 json,将其附加到响应消息中,然后将其发回?
  • 从外观上看,试图让他在客户端脚本中收到的json数据出现在服务器端脚本中。可能是这样他可以保存它。
  • 您问题中的 JSON 数据来自哪里?它们来自$data 变量吗?
  • 我不认为他试图保存它,因为如果他试图保存 JSON(我猜是 DB),那么他为什么要将它附加到(字符串)$response 变量?如果您想将新字符串附加到您的 json 中,只需将其添加到 $data,将其重新编码为 JSON 并发送即可。但这只是猜测。

标签: php html json post


【解决方案1】:

为 html 创建一个隐藏的输入字段,并使用您的 javascript 更新该字段的值,然后发布表单。即:

<html>
  <body>
    <form id="after-i-get-json-stuff" method="post">
      <input id="update-this" type="hidden" name="Object" value="" />
    </form>
    <script>
      //HOWEVER YOU GET YOUR JSON DATA
      $('#update-this').val(data);
      $('#after-i-get-json-stuff').submit();
    </script>
  </body>
</html

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-22
    • 2016-08-06
    • 2012-09-20
    • 2014-07-04
    • 2015-02-02
    相关资源
    最近更新 更多