如何解决来自php数组值的javascript变量声明?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (89)

我在php中获得了一个由SQL查询生成的多维数组。我感兴趣的是如何使用数组中的第一个值作为javascript中新变量的名称,并将数组中的第二个值指定为新创建的变量的值。

我试过的是这个

  foreach ($language_array as $value) {


echo "<script> var ".$value[0]." = ". $value[1]."; </script>";

}

但是当我尝试document.write(变量); 这是未定义的。

 Array
(
    [0] => Array
        (
            [0] => el1
            [1] => Grouping
        )

    [1] => Array
        (
            [0] => el2
            [1] => Type
        )

    [2] => Array
        (
            [0] => el3
            [1] => Starting Date
        )

    [3] => Array
        (
            [0] => el4
            [1] => Ending Date
        )

    [4] => Array
        (
            [0] => el5
            [1] => Section
        )

    [5] => Array
        (
            [0] => el6
            [1] => Cell
        )

    [6] => Array
        (
            [0] => el7
            [1] => Client
        )

    [7] => Array
        (
            [0] => el8
            [1] => Status
        )

    [8] => Array
        (
            [0] => el9
            [1] => Article
        )

    [9] => Array
        (
            [0] => el10
            [1] => Search
        )

)
提问于
用户回答回答于
  1. 不要<script>为每个变量发出单独的标记,而是<script>在循环之前/之后只发出一次标记
  2. 现在它是 - 赋值的右侧被解释为另一个变量名,而不是值 - 所以这就是你未定义的原因。您缺少字符串变量值的引号

固定代码:

$language_array = [
         [ 'el1',  '"Grouping"'],
         [ 'el2', '"Type"' ],
         [ 'el3', '"Starting Date"'],
         [ 'el4', '"Ending Date"'],
         [ 'el5', '"Section"']
        ]; 

        echo "<script>";
        foreach ($language_array as $value) {
          echo "var ".$value[0]." = ". $value[1].";";
          echo "document.write({$value[0]}+'<br>');";
        }
        echo "</script>";
用户回答回答于

可以使用Alert(变量)而不是documenti.write ...因为当我们将document.write()放在一个函数中时。调用该函数时,所有HTML元素都将被覆盖并替换为新的指定文本...

扫码关注云+社区

领取腾讯云代金券