加载javascript时无法传递参数(在数组中)

时间:2017-05-26 09:58:25

标签: javascript php highcharts yii2 parameter-passing

所以我有这个javascript文件(高图)。我想在yii2的视图文件中重用它,使用不同的参数。 在我必须使用包含数字的数组执行此操作之前,我没有遇到任何问题:

<script 
    type="text/javascript" 
    iddiv="miskinprov"
    axisjudul="Persentase Penduduk Miskin"
    seriesjudul="Penduduk Miskin"
    d1=17.10
    d2=18.34
    d3=17.48
    d4=17.88
    d5=17.32
    dtextjudul="Perkembangan Persentase Penduduk Miskin <br/>di Provinsi Bengkulu, 2010-2016 (Maret)"
    dtextsubjudul='Sumber: <a href="http://bengkulu.bps.go.id/">BPS Provinsi Bengkulu</a>'
src="<?php echo Yii::$app->request->baseUrl; ?>/filejs/chartdata/1700_bkl_trend.js"></script>

这是1700_bkl_trend.js文件:

var jscript = $('script[src*=1700_bkl_trend]');
$(function () {
Highcharts.chart(jscript.attr('iddiv'), {
    chart: {
        type: 'line',
        height: 500,
        ...
    },
    title: {
        text: jscript.attr('dtextjudul'),
    },
    subtitle: {
        text: jscript.attr('dtextsubjudul'),
    },        
    xAxis: {
        title: {
            text: 'Tahun',
        },
        categories: ['2012', '2013', '2014', '2015', '2016'],
    },
    yAxis: {
        title: {
            text: jscript.attr('axisjudul'),
        },            
    },        
    series: [{
            name: jscript.attr('seriesjudul'),
            data: [jscript.attr('d1'), jscript.attr('d2'), jscript.attr('d3'), jscript.attr('d4'), jscript.attr('d5')],
            color: '#B22D12',
        }]
});

});

问题出在这一部分:

data: [jscript.attr('d1'), jscript.attr('d2'), jscript.attr('d3'), jscript.attr('d4'), jscript.attr('d5')],
                //data: [jscript.attr('d1')],

高清图显示但系列没有。 我试过用这个:

<?php
$s1 = 17.10;
?>
d1='<?php echo json_encode($s1); ?>'

在参数中也使用双引号和单引号,但仍然没有运气。 我还没做什么?

1 个答案:

答案 0 :(得分:0)

可能缺少parseInt - HTML属性作为字符串而不是数字传递。我用这种方式工作(使用vanillaJS)

var jscript = document.querySelector('script[src*="1700_bkl_trend"]');
//var x =  [jscript.getAttribute('d1'), jscript.getAttribute('d2'), jscript.getAttribute('d3'), jscript.getAttribute('d4'), jscript.getAttribute('d5')]
//console.log(x);
(function () {
Highcharts.chart(jscript.getAttribute('iddiv'), {
    chart: {
        type: 'line',
        height: 500,
    },
    title: {
        text: jscript.getAttribute('dtextjudul'),
    },
    subtitle: {
        text: jscript.getAttribute('dtextsubjudul'),
    },        
    xAxis: {
        title: {
            text: 'Tahun',
        },
        categories: ['2012', '2013', '2014', '2015', '2016'],
    },
    yAxis: {
        title: {
            text: jscript.getAttribute('axisjudul'),
        },            
    },        
    series: [{
            name: jscript.getAttribute('seriesjudul'),
            data: [parseInt(jscript.getAttribute('d1')), parseInt(jscript.getAttribute('d2')), parseInt(jscript.getAttribute('d3')), parseInt(jscript.getAttribute('d4')), parseInt(jscript.getAttribute('d5'))],
            color: '#B22D12',
        }]
});
})()
<script src="https://code.highcharts.com/highcharts.js"></script>
<script 
    type="text/javascript" 
    iddiv="miskinprov"
    axisjudul="Persentase Penduduk Miskin"
    seriesjudul="Penduduk Miskin"
    d1=17.10
    d2=18.34
    d3=17.48
    d4=17.88
    d5=17.32
    dtextjudul="Perkembangan Persentase Penduduk Miskin <br/>di Provinsi Bengkulu, 2010-2016 (Maret)"
    dtextsubjudul='Sumber: <a href="http://bengkulu.bps.go.id/">BPS Provinsi Bengkulu</a>'
src="<?php echo Yii::$app->request->baseUrl; ?>/filejs/chartdata/1700_bkl_trend.js"></script>
<div id="miskinprov"></div>