【问题标题】:Cannot pass parameter (in array) when loading javascript加载javascript时无法传递参数(在数组中)
【发布时间】:2017-05-26 09:58:24
【问题描述】:

所以我有这个 javascript 文件(highchart)。我想在 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); ?>'

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

【问题讨论】:

    标签: javascript php highcharts yii2 parameter-passing


    【解决方案1】:

    可能缺少 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>

    【讨论】:

    • 非常感谢,只是我需要 parseFloat 代替。但是谢谢你:)
    猜你喜欢
    • 2013-08-01
    • 2021-09-06
    • 1970-01-01
    • 1970-01-01
    • 2012-11-02
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多