我从sql查询中得到了php中的多维数组。 我很感兴趣如何将数组中的第一个值用作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
)
)
谢谢
Ervin
答案 0 :(得分:0)
您是否可以使用Alert(variable)代替documenti.write ...,因为 当我们将document.write()放入函数中时。调用该函数时,所有HTML元素都将被覆盖,并替换为新的指定文本...
答案 1 :(得分:0)
不要为每个变量单独发出<script>
标签,而应-在循环之前/之后仅发出<script>
标签
现在就这样-赋值的右侧被解释为另一个变量名,而不是值-这就是为什么未定义的原因。您缺少字符串变量值的引号
固定代码:
$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>";
答案 2 :(得分:0)
您正在编写如下脚本:
<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>";
}
就像另一个答案所说的那样,虽然我认为它实际上不会在处理方式上有很大的不同,但是没有必要将每个变量放在自己的脚本中。