создание массива php, а затем преобразование в массив javascript с использованием данных MySQL - PullRequest
0 голосов
/ 09 мая 2019

Я пытаюсь создать массив, используя данные из базы данных 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 Ответ

1 голос
/ 09 мая 2019

Поскольку вы ничего не говорите нам о своих данных mysql, все, что я могу вам сказать, это то, что php-эквивалент массива, который вы показываете выше, будет (частично):

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

json_encode создаст JSON, который выглядит следующим образом для woodhouse:

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

Важно признать, что объект stirling в оригинале также был закодирован рекурсивно. JSON не поддерживает ссылки на объекты, как в вашем примере.

Я подозреваю (но на самом деле не могу знать), что JSON, который вам действительно нужно создать, будет больше походить на данные, поступившие из вашей базы данных, включая идентификатор для каждого человека и поле "parent", содержащее идентификатор объекта. родитель, а не ссылка.

Как только эти данные поступят по проводам, вы можете создать структуру со ссылками в своем клиенте javascript.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...