php数据导出为txt文档和导入txt文档解析数据
来源:互联网 发布:阿里云幕布 高清下载 编辑:程序博客网 时间:2024/06/05 09:20
首先页面需要添加导出按钮,注意:导出数据JS不能用异步请求(ajax请求属于异步请求);可以使用重定向。
一、下面是我项目中自己写的导出数据代码(项目中用到了Yii框架和angularjs ;实际情况可以根据自己):
1、html添加按钮,点击事件传两个参数title和id
<input type="button" ng-click="exportTxt(title,id)" style="display:inline;witdh:54px" class="btn btn-danger btn-xs" value="导出"/>
2、JS中使用重定向调用控制器方法
//confirm写一个简单的弹窗提示;然后调用activity控制器中exportTxt方法传递两个参数
$scope.exportTxt = function(title,id){
if(confirm("你确定导出"+title+"活动数据吗?")){
location.href="/activity/exportTxt" + "?title="+title+"&id="+id;
}
}
3、控制器中导出txt文件函数(结束)
//活动模板导出数据
public function actionExportTxt(){
$id = intval($this->getParam("id"));
//GameManagerHelper::getDbMainConnection()是自己封装的获取mainDb的方法
$mainDb = GameManagerHelper::getDbMainConnection();
$sql = "select * from activity_template where id = $id";
//Yii的查询数据方法
$result = $mainDb->createCommand($sql)->queryRow();
if (count($result)){
$fileName = $result['title'];
//把查到的数据转换成json数据,用于后面写入txt文档
$resultStr = json_encode($result);
//这是最简单的导出txt方法
header('Content-type:text/plain;charset=utf-8');
header('Content-Disposition:attachment;filename="'.$fileName.'.txt"');
//echo是向txt中把json字符串写入进去
echo $resultStr;
}
}
二、导入txt文档解析数据
1、在需要添加的html文件合适weizform表单用于提交txt文档(style根据自己需求修改合适的样式)
//action使用了Yii方法,根据自己需求修改
<form style="display: inline-block;" enctype="multipart/form-data" method="post" id="uploadData"
action="<?php echo Yii::app()->getController()>createUrl('activity/uploadActivityTemplate');?>">
<button type="button" style="font-size:14px" onclick = "bindFileClick()">导入文件</button>
//把input隐藏;使用上面的button来调用(注意:button它带有默认的表单提交,我们需要把默认表单提交禁用掉,解决方法:button添加 type="button" 属性)
<input type="file" id="activityTemplate" onchange="importFile()" name="activityTemplate" style="opacity: 0;position: absolute;top:0px;" />
</form>
2、JS中函数调用
<script type="text/javascript">
function bindFileClick(){
//button调用input点击事件
$("#activityTemplate").click();
}
function importFile(){
if(confirm('确定上传一条活动模板数据吗?')){
//表单提交
$("#uploadData").submit();
}else{
//清除选中文件
}
}
</script>
3、控制器读取txt文件数据函数
public function actionUploadActivityTemplate(){
//default是上面获取数据库里表含有的字段,用于后面记录读取的数据
$default = array(
'type' => 1,
'isDefault' => 0,
'title' => '',
'startTime' => '',
'endTime' => '',
'timingStartTime' => '',
'releaseTime' => 0,
'cycle' => '',
'items' => '',
'exValues' => '',
'content' => '',
'isOpen' => 1,
'sort' => 0,
'exValues2' => '[]',
'exData' => '',
'isCirculation' => 0,
);
// $_FILES函数用户获取之前html中name ='activityTemplate'的文件
$activityFile = $_FILES['activityTemplate']['tmp_name'];
//读取文件数据
$activityData = file_get_contents($activityFile);
$activityTemplate = json_decode($activityData,true);
//之前存数据txt的时候包含id字段,需要去除该字段
unset($activityTemplate['id']);
$data = array();
foreach ($default as $key => $value){
$data[$key] = $activityTemplate[$key];
}
//下面两行是封装的插入数据库数据的方法,可以根据自己需要自己写插入表的sql
$uwActivityTemplate = new UwActivityTemplate();
$result = $uwActivityTemplate->create($data);
//重定向刷新页面
header('location: '.$_SERVER['HTTP_REFERER']);
}
- php数据导出为txt文档和导入txt文档解析数据
- txt文档操作(导出和导入)
- Excel数据导出到txt文档
- txt文档批量向MySQL导入数据
- DataGridView导入导出Txt文档
- oracle数据导出txt及导入txt
- python 处理 txt 文档数据
- excel和matlab数据互调,txt文档数据导入matlab
- modelsim仿真wave中数据变量导出到txt文档
- 将TXT文档中数据导入XML文件中 C#
- SQLite中从txt文档中导入数据
- 将txt文档数据导入到excel中
- C++ 将数据导入到CSV,txt文档中
- sqlserver数据导出为txt文件再导入mysql
- 将printf 显示的大量数据,保存为txt文档
- MySQL导入TXT文档
- sqlldr 导入txt文档
- php 导入、导出txt
- springmvc 整合mybatis dao层不写实现类
- 简单的Git 命令:获取仓库文件和切换远程分支
- 合并排序数组 II
- 第五章笔记
- 关于super和this关键字调用构造器的几点总结
- php数据导出为txt文档和导入txt文档解析数据
- JAVA后台程序设计及UTIL.CONCURRENT包的运用
- Restful API 简单示例--HelloWorld
- 10min初识观察者模式
- NOIp2016滚粗记
- excel列下拉自增1的实现方法
- 解决XP下iis5.1访问 IIS 元数据库失败
- markdown编辑器——颜色、大小、字体
- ElasticSearch教程--第十一章:修改您的数据--更新文档