【问题标题】:TypeError: array[i] is undefined类型错误:数组 [i] 未定义
【发布时间】:2017-01-16 07:46:00
【问题描述】:

我在php中加载了一个多维数组

for($y = 0; $y< $totaleventosaldia; $y++ ){

$arraynombres[$y] = array($arrayeventosaldia[$y][1]);

}

将数组传递给javascript方法

echo "<td><button id = '".$year."-".$month."-".$i."' type='button' class='btn-default' style=' border-style: solid; border-image: url(imagenes/rainbow.jpg) 30 round;' onclick='mostrarModal(".$idboton.",".$arraynombres.");' >".$i."</button></td>";

我不断收到 array[i] is undefined 我不明白,

<script>
    function mostrarModal(idboton, eventos){


        var fechaboton = idboton;

        var array = [];     

        var acumuladordenombres;


        for(var i =0; i < eventos.length;i++){
            array[i] = eventos[i];
            acumuladordenombres = acumuladordenombres +' '+ array[i][0];
        }


        alert(acumuladordenombres);




    }
</script>

请帮忙,这个已经花了几个小时了。

【问题讨论】:

  • 你不能像这样将值从 php 传递到 html。对于初学者,$arraynombres 是一个数组,不能回显。
  • 哦,非常感谢,我会尝试传递一个字符串,然后在 javascript 中将其切碎
  • 这是一种方法。

标签: javascript php jquery html arrays


【解决方案1】:

不允许将 PHP 数组直接放入 JavaScript。 请尝试对其进行json_encode:

onclick='mostrarModal(".$idboton.",".json_encode($arraynombres).");'

关于您的 JavaScript,我建议直接使用 eventos 而不是将元素复制到 array

for(var i =0; i < eventos.length;i++) {
    acumuladordenombres = acumuladordenombres +' '+ eventos[i][0];
}

【讨论】:

    猜你喜欢
    • 2021-11-16
    • 2014-05-12
    • 1970-01-01
    • 2019-10-31
    • 2021-04-12
    • 2021-10-28
    • 2016-08-07
    • 2019-01-07
    • 2020-01-28
    相关资源
    最近更新 更多