如何使用 Blade 传递 PHP 变量循环遍历 JavaScript 代码
How do I loop through JavaScript code with Blade passing PHP variables
我正在使用 chart.js 来显示一些数据,当代码是这样时一切正常:
JavaScript/Blade
var pieDataAssignments = [
@for($i = 0;$i<count($name);$i++)
{
value: {!! count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";')))!!},
color: 'pink',
highlight: "#eaa5a2",
label: 'Subject'
},
@endfor
];
然后我认为它在工作,确实如此,我想开始自定义饼图。
首先,我尝试分别为每个变量插入值,例如
color: {!! $colour[$i] !!},
etc...
那只是阻止了饼图的出现,这让我开始思考我的失败..
然后我尝试将所有内容插入到第一个 Blade 调用中,如下所示:
Blade
{!!'
{
value:'.count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";'))).',
color: "'.$colour[$i].'",
highlight: "#eaa5a2",
label: "hi"
},
'!!}
可是,还是没有出现。
我怎样才能循环 JavaScript 代码并同时传递 php 变量?我不知道还能尝试什么,除了告诉我完全按照我的尝试去做之外,我在网上找不到任何东西。
提前谢谢你。
我解决了这个问题,我的代码是在它自己的实例中重新创建数组。现在可以使用的代码如下:
var pieDataAssignments = [
@for($i = 0;$i<count($name);$i++)
{!!'
{
value:'.count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";'))).',
color: "'.$colour[$i].'",
highlight: "#eaa5a2",
label: "'.$name[$i].'"
},
'!!}
@endfor
];
我正在使用 chart.js 来显示一些数据,当代码是这样时一切正常:
JavaScript/Blade
var pieDataAssignments = [
@for($i = 0;$i<count($name);$i++)
{
value: {!! count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";')))!!},
color: 'pink',
highlight: "#eaa5a2",
label: 'Subject'
},
@endfor
];
然后我认为它在工作,确实如此,我想开始自定义饼图。
首先,我尝试分别为每个变量插入值,例如
color: {!! $colour[$i] !!},
etc...
那只是阻止了饼图的出现,这让我开始思考我的失败..
然后我尝试将所有内容插入到第一个 Blade 调用中,如下所示:
Blade
{!!'
{
value:'.count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";'))).',
color: "'.$colour[$i].'",
highlight: "#eaa5a2",
label: "hi"
},
'!!}
可是,还是没有出现。
我怎样才能循环 JavaScript 代码并同时传递 php 变量?我不知道还能尝试什么,除了告诉我完全按照我的尝试去做之外,我在网上找不到任何东西。
提前谢谢你。
我解决了这个问题,我的代码是在它自己的实例中重新创建数组。现在可以使用的代码如下:
var pieDataAssignments = [
@for($i = 0;$i<count($name);$i++)
{!!'
{
value:'.count(array_filter($ass_c,create_function('$a','return $a=="'.$name[$i].'";'))).',
color: "'.$colour[$i].'",
highlight: "#eaa5a2",
label: "'.$name[$i].'"
},
'!!}
@endfor
];