【问题标题】:How to transform correctly an array to json_encode如何正确地将数组转换为 json_encode
【发布时间】:2019-01-19 17:03:29
【问题描述】:

我发现这个非常有用...

Demo: jQuery Ajax Call to PHP Script with JSON Return

但我在使用它时遇到了一些问题......

我需要了解如何正确使用它...

我不明白为什么我的数组不能在 json 中转换....

这些代码在 response.php 中:

$champs = ["user" => "", "combinaison" => 0, "valeurSmall" => "", "valeurBig" => "", "aucune_valeur" => false, "trop_valeur" => false, "color_red" => 0, "color_green" => 0, "color_blue" => 0];

$return["json"] = json_encode($champs, JSON_FORCE_OBJECT); 
echo json_encode($return); 

在我的 index.html 中,javascript 部分:

$.ajax({
    type: "POST",
    dataType: "json",
    url: "changerMise/changer.php", 
    data: data,
    success: function(dataReturn) {                    
    alert("Form submitted successfully.\nReturned json: " + dataReturn["json"] );
       }
   });

警报不会返回我需要使用的东西......

结果给了:

Form submitted successfully.
Returned json: {"aucune_valeur": true}

有什么想法吗?!??!

谢谢大家

【问题讨论】:

  • echo json_encode($champs,JSON_FORCE_OBJECT); ...

标签: javascript php json ajax


【解决方案1】:

您是否在您的 php 文件顶部提供了响应输出的标头 json,如下所示?

<?php header("Content-type: application/json; charset=utf-8"); ?>

【讨论】:

  • 如果您使用 POST 方法,您必须知道数据名称/值将在哪里执行/检查。 $_POST["json"] 示例,输入表单中的数据将被执行/测试。
  • 必须添加header json,并添加allow cors origins
  • 是的。 Ajax json 必须读取 json 对象(不是 html)。我认为您的 PHP 返回的是 html 标头,而不是 json。
  • 我知道为什么我在输出响应中没有收到任何信息...在我的一个函数结束时,我忘记了这个 ««««return $champs;»»» 请不要扔掉任何烂番茄大声笑
猜你喜欢
  • 1970-01-01
  • 2014-05-17
  • 2018-07-19
  • 2021-11-21
  • 2018-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-01-27
相关资源
最近更新 更多