我正在将 laravel 用于一个项目,我有以下问题,在控制器中我有一个名为 escalafonvalue 的数组已填充,然后使用 return 和 compact 将该数组发送到视图,在视图中我需要传递该数组到一个脚本并在 javascript 中遍历它,我在刀片视图中将 php 数组传递给脚本,如下所示:
<script>
var cont= "<?php echo $count; ?>";
for (var index1 = 0; index1 < cont; index1++) {
precioesca[index1]="<?php echo $escalafonvalor[".index1."] ?>";
alert(precioesca[index1]);
}
</script>
数组是这样到达的:
array:3 [▼
0 => 13282000
1 => 4688000
2 => 2344000
]
数组正确传递给脚本,因为如果我给它索引 0,它会显示它的值并将它保存在 js 变量中。当我尝试使用 javascript 的变量 index1 遍历数组时,我的问题出现了,因为它告诉我变量 index1 未定义:
这里有什么问题?或者应该怎么做?
在这种情况下,变量 index1 是 javascript 中的变量,但您尝试在 php.ini 中访问它。正确的做法是:
考虑到代码
PHP
是在服务器端编译和执行的,而不是JS
在客户端(通常是浏览器)编译和执行的。也就是说,代码先执行
PHP
,结果返回给客户端,客户端执行JS
。考虑到这一点,如果您需要遍历
JS
存储在变量中的信息PHP
,您所要做的就是打印PHP
所述信息,使其在JS
解决方案:
您可以使用该函数
json_encode
,它允许您将变量的值转换为您JS
可以处理的对象。例子:
PS:表达式将
(array) $escalafonvalor
(在不是的情况下)$escalafonvalor
转换为数组,从而允许正确的迭代JS
。您可以使用以下方式执行此操作
length
,这使得它以数组的总长度并将其转换为index < 10
示例。我给你留下一个可执行的例子,这样你就可以看到它的实际效果。
使用马科斯给我的信息,我以这种方式使用它,我附上我的代码以防它帮助某人。