将值从 Smarty PHP 数组推送到 JavaScript 数组

我正在循环一个数组,其中有一些来自数据库的数据。我想使用 JavaScript 将这些值保存在一个数组中。我希望数组保持其内容,所以当我在另一个脚本标记中使用它时,它仍然有它的值。我真的被困住了。


{foreach from=$car_owner item=car_pos}

    <script type="text/javascript">

        arr = [

                [{$car_pos['longitude']}, {$car_pos['latitude']}]

              ];

        console.log(arr);

    </script>

{/foreach}

我写的代码将值保存在两个不同的数组中(因为数组$car_owner有两个来自数据库的索引),我不希望它发生。当我在另一个脚本标签中输出数组时,它只显示保存在数组中的最后一个索引,而不是全部内容。


跃然一笑
浏览 135回答 2
2回答

慕森王

尝试这个:<script type="text/javascript">&nbsp; let arr=[];</script>{foreach from=$car_owner item=car_pos}<script type="text/javascript">&nbsp; &nbsp; arr.push([{$car_pos['longitude']}, {$car_pos['latitude']}]);</script>{/foreach}<script type="text/javascript">&nbsp; console.log(arr);</script>首先:声明一个数组变量,不要在循环中声明一个变量,因为你的代码会出错:<script type="text/javascript">&nbsp; let arr=[];</script>第二:把你的循环代码,然后把循环值放在你之前声明的数组变量中:{foreach from=$car_owner item=car_pos}<script type="text/javascript">&nbsp; &nbsp; arr.push([{$car_pos['longitude']}, {$car_pos['latitude']}]);</script>{/foreach}(可选)最后:如果你想显示你所有的数组变量值,你可以在循环下面添加 console.log,不要把 console.log 放在循环中,如果你把你的 console.log 放在循环中那么你只会看到最后的循环值:<script type="text/javascript">&nbsp; console.log(arr);</script>

MMTTMM

** 解决了 **向量声明应该在 Smarty 循环之外!我不得不改为声明一个向量。将每个元素推入 Smarty 循环中。arrayPos.push([{$car_pos['longitude']},&nbsp;{$car_pos['latitude']}]);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript