我在 php 中得到了一个由 sql 查询产生的多维数组。 我感兴趣的是如何使用数组中的第一个值作为 javascript 中新变量的名称,并将数组中的第二个值分配为新创建的变量的值。
我试过的是这个
foreach ($language_array as $value) {
echo "<script> var ".$value[0]." = ". $value[1]."; </script>";
}
但是当我尝试 document.write (variable);这是未定义的。
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
)
)
谢谢
欧文
最佳答案
您正在编写如下脚本:
<script> var el1 = Grouping; </script>
这将尝试使用Grouping
作为变量,但您希望它是文字字符串。
您应该使用 json_encode()
将 $value[1]
转换为 JavaScript 文字。对于 PHP 字符串,它将添加必要的引号。
foreach ($language_array as $value) {
echo "<script> var ".$value[0]." = ". json_encode($value[1]) ."; </script>";
}
正如另一个答案所说,没有必要将每个变量放在自己的脚本中,尽管我认为它实际上不会对其处理方式产生太大影响。
关于来自php数组值的javascript变量声明,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52898341/