将jqPlot与Zend Framework一起使用

时间:2014-08-31 05:51:04

标签: zend-framework jqplot

我想在一个基于zend框架的系统中创建一个条形图,我发现这个jqPlot是一个很好的方法。但是我无法理解如何使用MVC布局来映射它,我又如何使用数组将从zend模型中提取的数据传递给zend视图中的javascript函数?我尝试了很多方法,但无法获得所需的结果。

1 个答案:

答案 0 :(得分:0)

您可以将AJAX data renderer用于jqPlot。然后,您应该在逻辑/模型类中生成数据,并通过从控制器操作中检索数据来获取数据。

实施例

视图

<div id="sharechart"></div>

布局

(不要忘记包含jqPlot所需的脚本)

<script type="text/javascript">
var ajaxShare = function() {
    var data = null;                
    $.ajax({
        async: false,
        url: '<?php echo $this->baseUrl(); ?>/charts/getshare',
        dataType: 'json',
        success: function(response) {
            data = response;
        },
    });

    return data;
};

$.jqplot('sharechart', {
    title: '<h1>Bank share</h1>',
    seriesDefaults: {
        renderer: $.jqplot.PieRenderer,
        rendererOptions: {
            showDataLabels: true,
            dataLabels: 'label',
        }
    },
    legend: { show:true, location: 'e' },
    dataRenderer: ajaxShare,
});
</script>

控制器

public function getshareAction()
{
    $this->_helper->layout()->disableLayout();
    $this->_helper->viewRenderer->setNoRender(true);

    $logic = new My_Charts();

    $shareArray = $logic->getShareData();

    echo json_encode(array($shareArray));
}