eval函数可以把一些处理过程序代码进行解析从而达到可以执行的一个状态,查了很多帖子,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要求的字符串格式,当然用数组更好,可惜不怎么会肯定还有更好的方法 只是我刚开始学,慢慢摸索
相信解决办法不止以上所述,肯定还有更好的解决办法,欢迎大家共同学习进步。
ps:ajax读取数据,使用jqchart显示图表
最近项目中需要显示出图表效果,原来收集到的图表插件终于有用武之地了。
但是和jqchart对比,还是有很多不同之处的。
实现效果:

我就对jqchart进行了重新编写。
首先要解决的是不显示x轴和y轴:
//各DIV作成










