长沙网站开发_DWPCMS中sql标签动态调取数据--如何传递参数

发布日期:2016-10-14 08:02

最近的网站建设项目中,需要实现点击省市名称时弹出公司在该省的业绩情况,并自动计算业绩总和。

大概的情况如下图,前期设计师分割地图,前端工程师给每个省的省会城市进行定位,背景的定位,加上js函数都是非常辛苦的工作。后期由我负责数据的调取和js的调整。

数据调取方法有很多种,可以使用AJAX异步传输。但考虑到数据较多,公司规模较大,频繁访问数据库会占用较多资源。最终选择一次性直接调取所有数据生成静态页面,然后通过JS动态显示各省市的业绩状况。

在数据调取和JS控制中的关键是子栏目ID {dede:field.id/}(将每个省作为一个子栏目,业绩以文章形式添加)。主要HTML如下:

 <!--调用所有省的栏目-->

{dede:channelartlist typeid=’6’ row=’1000’}

<div id=’light{dede:field.id/}’ class=’content’><a href=’javascript:void(0)’></a>

<div  class=’lightbox’>

<h2>XXX公司<span>{dede:field.typename/}</span>项目业绩表<h2>

<a href=’javascript:void(0)’ onclick=’closeMsg({dede:field.id/})”></a>

</div>

<div class=’lighttb’>

<div class=’lighttb-t’>

<p>工程名称</p>...

</div>

<div class=’lighttb-b’>

<!--滚动条控制窗-->

<div class="scroll_bd" id="scroll_bd{dede:field.id/}">

<div class="scroll_top" id="bd{dede:field.id/}">

<ul class="scale-list" id="ul{dede:field.id/}">

<!--调用各省份业绩数据-->

{dede:arclist row='1000' orderby='pubdate' addfields='tech_gy,scale_gm' channelid='1'}

<li><!--限定标题长度-->

<dt class="name">[field:fulltitle function="mb_strlen(@me,'utf8')>22?mb_substr(@me,0,19,'utf8').'...':@me"/]</dt>

<dd class="tech">[field:tech_gy/]</dd>

<dd class="scale">[field:scale_gm/]</dd>

<div style="clear:both;"></div>

<>

{/dede:arclist}

</ul>

</div>

<!--滚动条-->

<div class="scroll" id="scroll{dede:field.id/}">

<p id="p{dede:field.id/}"></p>

</div>

</div>

</div>

</div>

<div class="lighttb-b2">

<!--利用sql语句从数据库中获得统计数据-->

{dede:sql sql="select sum(scale_gm) as 'total',count(scale_gm) as 'items' from `pgy_addonarticle` where typeid= ~id~ "}

<p>注:合计处理规模<span>

<!--合计数据不存在时显示为0-->

[field:total runphp='yes']if(@me){@me=@me;}else{@me=0;}[/field:total]

</span>万吨/日</p>

{/dede:sql}

</div>

</div>

</div>

{/dede:channelartlist} 

以上结构很简单主要是channelartlist和arclist标签的嵌套使用,为了获得统计数据需要另外使用sql标签,但如何将当前栏目id传递给sql作为条件是本次遇到的难题。前面多次使用{dede:field.id/}进行取值,但在sql标签中不能嵌套使用其他的dede标签。

查询资料才发现~ field~可以用于标签间的数据传递,类似于在栏目列表页中不需要指定父栏目id便可以直接使用list标签调用数据列表,可以理解为在调用数据时已经默认typeid=~reid~。

这次只是简单的使用,~field~还有更强大的使用方法待各位去深入挖掘研究。

以上信息由长沙网站建设--长沙蒲公英网络收集与整理,禁止用于任何商业行为