【问题标题】:Pushing data to an multidimensional array JavaScript with PHP使用 PHP 将数据推送到多维数组 JavaScript
【发布时间】:2018-07-17 05:36:10
【问题描述】:

我有这个 JS calendar library,我想用我的 MySQL 数据库中的日期填充它。

看起来像这样:

    <script>

    var today = new Date();
    var matrix = {};
    var tmp;

    ';

    while($erg_termin = $res_termin_jahr -> fetch())
    {
        echo '
        matrix['.$erg_termin->termin_beginn_jahr.'] = {};
        ';
    }


    while($erg_termin = $res_termin_monat -> fetch())
    {
        echo '
        matrix['.$erg_termin->termin_beginn_jahr.']['.$erg_termin->termin_beginn_monat.'] = {};
        ';
    }

    while($erg_termin = $res_termin_tag -> fetch())
    {
        echo '
        matrix['.$erg_termin->termin_beginn_jahr.']['.$erg_termin->termin_beginn_monat.']['.$erg_termin->termin_beginn_tag.'] = {};
        ';
    }

    while($erg_termin = $res_termin -> fetch())
    {
        echo '
        matrix['.$erg_termin->termin_beginn_jahr.']['.$erg_termin->termin_beginn_monat.']['.$erg_termin->termin_beginn_tag.'].push({"displayname": "'.$erg_termin->termin_betreff.'"});
        ';
    }

    echo'

    console.log(matrix);


    </script>

我在源代码中得到的结果是:

    <script>

    var today = new Date();
    var matrix = {};
    var tmp;


        matrix[2018] = {};

        matrix[2018][02] = {};

        matrix[2018][02][05] = {};

        matrix[2018][02][08] = {};

        matrix[2018][02][11] = {};

        matrix[2018][02][12] = {};

        matrix[2018][02][15] = {};

        matrix[2018][02][18] = {};

        matrix[2018][02][19] = {};

        matrix[2018][02][05].push({"displayname": "Wöchentliche Wiederholung"});

        matrix[2018][02][08].push({"displayname": "Wöchentliche Wiederholung"});

        matrix[2018][02][11].push({"displayname": "Wöchentliche Wiederholung"});

        matrix[2018][02][12].push({"displayname": "Wöchentliche Wiederholung"});

        matrix[2018][02][15].push({"displayname": "Wöchentliche Wiederholung"});

        matrix[2018][02][18].push({"displayname": "Wöchentliche Wiederholung"});

        matrix[2018][02][19].push({"displayname": "Wöchentliche Wiederholung"});


    console.log(matrix);


    </script>

但是问题来了。在使用函数push 时出现此错误:Uncaught TypeError: matrix[2018][2][5].push is not a function

我想问题是我想向matrix[2018][2][5] 推送一些东西。但我不确定...如何将 JS 中的值推送到多维数组?

因为会有更多的日期,所以我不能简单地为每个日期创建一个数组。代码需要动态的!

我将不胜感激任何形式的帮助!

亲切的问候

【问题讨论】:

  • 在php中自然构建大数组可能更容易,然后将其与json_encode一起输出到单个js var中......也许。你有一些事情要做。

标签: javascript php arrays multidimensional-array


【解决方案1】:

这可能不是一个直接的答案,但希望它能帮助你到达你需要的地方。

嘿,唐, 你这样做有什么具体原因吗? 简单地使用 ajax 调用并从您的服务器返回 JSON 并以这种方式处理数据可能更谨慎。通过这种方式,您可以使用原生/原版 JS,而不必在 JS 标记中编写 PHP。一般来说,不建议这样做。并产生令人费解的、难以阅读的代码。

我也许可以帮忙解决这个问题,您是否使用任何类型的 MVC 框架?如果您从后端返回结构良好的数据,那么在前端操作数据会更容易。提供一些示例 PHP 代码!

此外,如果您调用 push 方法的对象不是数组,您可能会收到错误消息。尝试这样做以查看您正在使用的特定示例的数据类型:

console.log(typeof matrix[2018][2][5]);

看看你得到了什么。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-09-29
    • 2011-12-14
    • 2017-08-31
    • 1970-01-01
    • 1970-01-01
    • 2012-02-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多