为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

跃然一笑 2023-05-11 16:57:41
我正在循环一个数组,其中有一些来自数据库的数据。我想使用 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有两个来自数据库的索引),我不希望它发生。当我在另一个脚本标签中输出数组时,它只显示保存在数组中的最后一个索引,而不是全部内容。
查看完整描述

2 回答

?
慕森王

TA贡献1777条经验 获得超3个赞

尝试这个:


<script type="text/javascript">

  let arr=[];

</script>

{foreach from=$car_owner item=car_pos}

<script type="text/javascript">

    arr.push([{$car_pos['longitude']}, {$car_pos['latitude']}]);

</script>

{/foreach}

<script type="text/javascript">

  console.log(arr);

</script>

首先:声明一个数组变量,不要在循环中声明一个变量,因为你的代码会出错:


<script type="text/javascript">

  let arr=[];

</script>

第二:把你的循环代码,然后把循环值放在你之前声明的数组变量中:


{foreach from=$car_owner item=car_pos}

<script type="text/javascript">

    arr.push([{$car_pos['longitude']}, {$car_pos['latitude']}]);

</script>

{/foreach}

(可选)最后:如果你想显示你所有的数组变量值,你可以在循环下面添加 console.log,不要把 console.log 放在循环中,如果你把你的 console.log 放在循环中那么你只会看到最后的循环值:


<script type="text/javascript">

  console.log(arr);

</script>


查看完整回答
反对 回复 2023-05-11
?
MMTTMM

TA贡献1869条经验 获得超4个赞

** 解决了 **

向量声明应该在 Smarty 循环之外!

  1. 我不得不改为声明一个向量。

  2. 将每个元素推入 Smarty 循环中。

arrayPos.push([{$car_pos['longitude']}, {$car_pos['latitude']}]);


查看完整回答
反对 回复 2023-05-11
  • 2 回答
  • 0 关注
  • 133 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信