创建一个php数组,然后使用MySQL数据转换为javascript数组

时间:2019-05-08 21:17:05

标签: javascript php mysql arrays database

我正在尝试使用来自MySQL数据库的数据创建数组,这是使用Treant js(我可以找到的最佳方法)创建数据树的结论,我得出的结论是我必须首先在php中创建数组然后对其进行json_encode()使其正常运行。我的问题是如何使PHP数组具有以下格式以及如何使用json_enconde进行转换?

构造数据树的javascript代码如下:

 Array approach
var config = {
    container: "#collapsable-example",

    animateOnInit: true,

    node: {
        collapsable: true
    },
    animation: {
        nodeAnimation: "easeOutBounce",
        nodeSpeed: 700,
        connectorsAnimation: "bounce",
        connectorsSpeed: 700
    }
},
malory = {
    image: "img/malory.png"
},

lana = {
    parent: malory,
    image: "img/lana.png"
}

figgs = {
    parent: lana,
    image: "img/figgs.png"
}

sterling = {
    parent: malory,
    childrenDropLevel: 1,
    image: "img/sterling.png"
},

woodhouse = {
    parent: sterling,
    image: "img/woodhouse.png"
},

pseudo = {
    parent: malory,
    pseudo: true
},

cheryl = {
    parent: pseudo,
    image: "img/cheryl.png"
},

pam = {
    parent: pseudo,
    image: "img/pam.png"
},

chart_config = [config, malory, lana, figgs, sterling, woodhouse, pseudo, pam, cheryl];

预先感谢

1 个答案:

答案 0 :(得分:0)

由于您没有告诉我们有关mysql数据的任何信息,因此我只能告诉您与上面显示的数组等效的php是(部分):

$woodhouse = [
    'parent' => $sterling,
    'image' => 'img/woodhouse.png',
},

json_encode然后将为woodhouse创建如下所示的JSON:

{
    parent: {
        parent: { /* malory data here */ },
        childrenDropLevel: 1,
        image: "img/sterling.png"
    },
    image: "img/woodhouse.png"
},

要认识的重要一点是原始文档中的stirling对象也是递归编码的。 JSON不像您在示例中那样支持对象引用。

我怀疑(但不是很清楚)您实际上需要创建的JSON看起来更像是来自数据库的数据-包括每个人的ID和持有该ID的“父”字段父级,而不是引用。

一旦数据通过网络,您就可以在javascript客户端中使用引用创建结构。