星联网络专注帝国CMS二次功能插件开发-精品网站模板站长代码素材

  • 最近更新
  • 模板:33
  • 记录:12641|
  • 插件:52|
  • 工具:4|
  • 代码:8|
  • 评论:0

DEDE自定义表单导出功能的实现详细步骤

前言

本文主要讲解《DEDE自定义表单导出功能的实现详细步骤》的详细内容

DEDE自定义表单导出功能的实现详细步骤,这个代码是通用的!加完后 你所有的自定义表单 都可以导出!


步骤:
1.打开 /dede/templets/diy_main.htm 大概在第49行的地方加上
<a href="../plus/diy.php?action=push&diyid={dede:field.diyid/}" target="_blank">导出</a>
意思就是加个导出按钮。

2.打开 /plus/diy.php 在最下面加入以下代码
else if($action == 'push')
{
  $row = $dsql->GetOne("Select * From dede_diyforms where diyid='$diyid'");
  $ds = file(('/dede/inc/fieldtype.txt'));
foreach($ds as $d){
$dds = explode(',',trim($d));
$fieldtypes[$dds[0]] = $dds[1];
}
$fieldset = $row['info'];
$dtp = new DedeTagParse();
$dtp->SetNameSpace("field","<",">");
$dtp->LoadSource($fieldset);
$titleArray=array();
$titleName=array();
if(is_array($dtp->CTags)){
foreach($dtp->CTags as $ctag)
{
$itname = $ctag->GetAtt('itemname');
if($itname=='') echo "没指定";
$titleArray[] = $itname;
$titleName[]= $ctag->GetTagName();
}
}
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment; filename=demo.xls');
header('Pragma: no-cache');
header('Expires: 0');
$title =$titleArray;
include_once DEDEINC.'/datalistcp.class.php';
    if($diy->public == 2)
        $query = "SELECT * FROM `{$diy->table}` ORDER BY id DESC";
    else
        $query = "SELECT * FROM `{$diy->table}` WHERE ifcheck=1 ORDER BY id DESC";

    $datalist = new DataListCP();
    $datalist->pageSize = 10;
    $datalist->SetParameter('action', 'list');
    $datalist->SetParameter('diyid', $diyid);
    $datalist->SetSource($query);   
$rsArray = array();
$datalist->dsql->Execute('dlist',$datalist->sourceSql);
        $i = 0;
        while($arr=$datalist->dsql->GetArray('dlist'))
        {
        $i++;  
        $object = array();
        foreach ($titleName as $va){
        $object[]=$arr[$va];
        }
            $rsArray[$i] = $object;
           
        }
$data = $rsArray;
echo iconv('utf-8', 'gbk', implode("\t", $title)), "\n";
foreach ($data as $value) {
echo iconv('utf-8', 'gbk', implode("\t", $value)), "\n";
}
exit;
}



就OK了。


思路很简单,先在列表页搞个可以触发导出的按钮,然后把需要导出的表头和内容查出来,然后以execle输出就好了。

本网刊登的文章均仅代表作者个人观点,并不代表本网立场。文中的论述和观点,敬请读者注意判断。

本文地址:http://www.xlkjgs.com/notes/web/10156.html

以上内容由本站整理呈现,请务必在转载分享时注明本文地址!如对内容有疑问,请联系我们,谢谢!

星联网络

星联网络是中国最具实战的互联网创业者的知识服务商,这里有互联网行业动态,网络推广,SEO优化,SEM优化,ESC配置,行业经验分型,互联网项目,微信营销、淘宝客赚钱、新媒体营销、京东运营、跨境电商等众多互联网营销知识分享

站长运营站长必备网站运营之道才能长久发展