时间:2021-05-25
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弄了,别的也不会
<?phpinclude ("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作成 // 取消标题显示 // 取消y轴数字显示 // 取消x轴分类显示其次,对于拐点的文字,原来显示是相应的data值,现在需要显示的是对应的x轴名称:
if( x <= op.width){ var dx=x-op.paddingL,dy=y-op.paddingT; var dxx = i<=0 ? (dx+op.labelDataOffsetX - 5 + 'px'):( dx+op.labelDataOffsetX - 20 + 'px'); //坐标点x轴偏移 var dyy = i%2 ? (dy+op.labelDataOffsetY - 25 + 'px'):(dy+op.labelDataOffsetY - 5 + 'px'); //坐标点y轴偏移 it.wrtText( //dx+op.labelDataOffsetX - 20 + 'px', dxx, //dy+op.labelDataOffsetY - 10 + 'px', dyy, //op.rows[i], // pre: 坐标点data值 op.txtpointers[i], // cychai:坐标点文字 op, "#jQchart-data-D-"+op.id ).css('color',(op.data.length==1)?'#333':strokeStyle) .css({"width":"100px","font-size":"12px"}); // cychai:样式控制使用默认的数据可以显示出来了。接下来就是和开发的协作了。
我希望可以使用ajax异步获取数据,然后在前台显示。
这里,我使用了一个示例页面chartdata.html, 即需要的数据页
[{labelX : ["外观设计","便携性","易用性","电池待机","摄像功能","变焦"],data :[[5,7,2,3,9,4]]}]
在前台,我通过ajax请求该页面,对返回的json数据进行处理,传递给chartSetting:
$(function(){ $.ajax({ url: "chartdata.html", type: "GET", success: function(cdata){ showDDChart(cdata); } }); function showDDChart(cdata){ var dd_chart = eval(cdata)[0]; var chartSetting={ config : { title : "", titleLeft: 70, labelX :dd_chart.labelX, //labelX :["外观设计","便携性","易用性","电池待机","摄像功能","变焦"], scaleY : {min: 0,max:10,gap:2}, width: 300+25, height: 125+50, paddingL : 10, paddingT : 10 }, //data: [[5,3,1,8,4,9]] data :dd_chart.data }; $('#canvasMyID').jQchart(chartSetting); } });完整的html页面:
<head> <!--[if IE]> <mce:script src="excanvas-compressed.js" mce_src="excanvas-compressed.js" type="text/javascript" ></mce:script> <![endif]--> <mce:script src="http://jsgt.org/lib/jquery/plugin/jqchart/sample/v003/lib/jquery-1.2.3.min.js" mce_src="http://jsgt.org/lib/jquery/plugin/jqchart/sample/v003/lib/jquery-1.2.3.min.js" type="text/javascript"></mce:script> <mce:script src="jquery.jqchart.js" mce_src="jquery.jqchart.js" type="text/javascript" charset="utf-8"></mce:script> </head><body> <canvas id="canvasMyID" height="200"></canvas> <mce:script type="text/javascript"><!-- $(function(){ $.ajax({ url: "chartdata.html", type: "GET", success: function(cdata){ showDDChart(cdata); } }); function showDDChart(cdata){ var dd_chart = eval(cdata)[0]; var chartSetting={ config : { title : "", titleLeft: 70, labelX :dd_chart.labelX, //labelX :["外观设计","便携性","易用性","电池待机","摄像功能","变焦"], scaleY : {min: 0,max:10,gap:2}, width: 300+25, height: 125+50, paddingL : 10, paddingT : 10 }, //data: [[5,3,1,8,4,9]] data :dd_chart.data }; $('#canvasMyID').jQchart(chartSetting); } }); // --></mce:script> </body> </html>OK,大功告成! 完整示例我会放到我的资源里。
好久都没有用jquery ajax了,拼json数据都有些生疏了。还是喜欢开发这种有逻辑性的工作....
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
WPS绘制折线图的方法如下: 1、打开要处理的工作表格。 2、选择要做成折线图的数据。 3、点击插入图表。 4、选择折线图。 5、点击确定,折线图即显
还在为Excel堆积折线图怎么制作而苦恼吗,下面教大家Excel堆积折线图怎么制作,让你告别Excel堆积折线图怎么制作的烦恼。 一、堆积折线图的制作
在使用excel制作折线图,单纯的插入折线图显得非常枯燥,那么如何进行调整制作出炫酷的折线图呢?现在就把制作的过程和截图分享出来,希望对你有所帮助和启发。软件名
你还在为Excel堆积折线图怎么制作而苦恼吗,今天小编教你Excel堆积折线图怎么制作,让你告别Excel堆积折线图怎么制作的烦恼。一、堆积折线图的制作1、选中
EXCEL折线图和柱形图可以说是图表中最长用到的,但正常情况下大家做的折线图都是比较中规中矩的,下面来给大家介绍几种折线图的美化方法,让你的折线图不再乏味!软件