jQuery--jqChart折线图使用eval处理返回数据无效的解决方法

12/6/2015来源:Javascript教程人气:662

jquery初学者

查了很多帖子,jqchart插件做折线图时,处理返回数据时全都是eval,但我怎么也弄不出来,后来发现:

1、根本不需要eval处理,直接截取字符串即可(返回值要拼接好);

2、处理好的字符串放进series的data里要加上[];

下面是代码:

html页面<body>标签里面只放了一个<div id="jqChart" style="width: 500px; height: 300px;"></div>;

<script>里面

<script type="text/javascript" src="jquery.1.8.2.js"></script>
<script type="text/Javascript" src="jquery-jqChart-min.js"></script>
<script type="text/javascript">
$(function () {
    $.get("tgAjax.php",function(data){
        var dom = data.substring(0,data.length-1);//主要是对返回数据的处理,后面很明显多了一个","
        //var dom = eval('(' + dom + ')'); 
        //alert( dom);
    $('#jqChart').jqChart({
        title: { text: '线形图示例' },
        axes: [
            {
                location: 'left',
                minimum: 1,
                maximum: 10,
                interval: 1,
            }
        ],
            series: [
            {
                type: 'line',
                title:'上海',
                markers: null,//拐点不用圆点标示 
                strokeStyle: 'blue' , 
                data: [['json', 1], ['per', 9], ['perter', 3]]
            },
            {
                type: 'line',//line,Column
                title:'北京',
                strokeStyle: 'red' , 
                data:[dom]
            },
            ]
        });    

});
});
</script>

后台处理页面我就用简单的php弄了,别的也不会

<?php
include ("configaz.php"); //数据库连接在另一个文件内,这里就不弄了
    $sql="select sid,sname,sPRice,count(sprice) as pricenum from shangpin group by sname";
    $query=MySQL_query($sql);
    $row=mysql_fetch_array($query);
    while($row=mysql_fetch_array($query)){
    $pricenum=$row['pricenum'];
    $sname=$row['sname'];
    } 
    echo $str .= "['".$sname."',".$pricenum."],";//拼接字符串,按照jqChart要求的字符串格式,当然用数组更好,可惜不怎么会

肯定还有更好的方法 只是我刚开始学,慢慢摸索