thinkphp框架表单数组实现图片批量上传功能示例


Posted in PHP onApril 04, 2020

本文实例讲述了thinkphp框架表单数组实现图片批量上传功能。分享给大家供大家参考,具体如下:

今天做一个表单数组实现图片批量上传,js不是很会,在网上找了资料改的,html页面如下:

<script type="text/javascript">
var i = 1;
function addElement(){
 var tr = document.createElement('tr');
 var td1=document.createElement("td");
 var td2=document.createElement("td");
 var td3=document.createElement("td");
 var td4=document.createElement("td");
 var td5=document.createElement("td");
 var td6=document.createElement("td");
 var td7=document.createElement("td");
 td1.innerHTML="<strong>描述:</strong>";
 td2.innerHTML="<textarea name='des[]' ></textarea>";
 td3.innerHTML="<strong>图片:</strong>";
 td4.innerHTML="<input type='text' name='image[]' id='image"+i+"'/><IFRAME name=fo frameBorder=0 height=24 marginHeight=1 marginWidth=1 scrolling=no BORDERCOLOR='#CCCCFF' src='__APP__/Upimg/upimgs/ind/"+i+"' style='vertical-align: middle;'></iframe><span style='color:red'>请上传小于2M的图片</span>";
 td5.innerHTML="<strong>排序:</strong>";
 td6.innerHTML="<input type='text' name='px[]' value='5'/>";
 td7.innerHTML="<a class='editbtn' href='javascript:void(0);' οnclick='addElement()'>增 加</a> | <a class='editbtn' href='javascript:void(0);' οnclick='dropElement()'>删减</a>";
 tr.appendChild(td1);
 tr.appendChild(td2);
 tr.appendChild(td3);
 tr.appendChild(td4);
 tr.appendChild(td5);
 tr.appendChild(td6);
 tr.appendChild(td7);
 tr.id = 'Elem'+i;
 document.getElementById('pdr1').appendChild(tr);
 i++;
}
function dropElement(){
 var aaa = document.getElementById('Elem'+(i-1));
 document.getElementById('pdr1').removeChild(aaa);
 i--;
}
function checkForm()
{
 for(k=i;k>=0;k--)
 {
 if(document.getElementById("image"+k).value=="")
 {
  alert("图片不能空");
  return false;
 }
 }
}
</script>
<div style="margin:20px auto">
<form method="post" name="form1" action="__URL__/insert" οnsubmit="return checkForm();">
<input type="hidden" name="fid" value="{$fid}"/>
<table class="table" cellspacing="1" cellpadding="2" width="90%" align="center"
border="0" id="pdr1">
 <tbody>
  <tr >
   <td width="5%" class="td_bg" align="right"><strong>描述:</strong></td>
   <td class="td_bg" width="25%"><textarea name="des[]"></textarea></td>
    <td width="5%" class="td_bg" align="right"><strong>图片:</strong></td>
   <td class="td_bg" width="25%"> <input type="text" name="image[]" id="image0"/><IFRAME name=fo frameBorder=0 height=24 marginHeight=1 marginWidth=1
            scrolling=no BORDERCOLOR="#CCCCFF"
            src="{:U('Upimg/upimgs','ind=0')}" style="vertical-align: middle;"></iframe>
        <span style="color:red">请上传小于2M的图片</span></td>
    <td width="5%" class="td_bg" align="right"><strong>排序:</strong></td>
   <td class="td_bg" width="20%"><input type="text" name="px[]" value="5"/></td>
    <td width="10%" class="td_bg" align="right"><a class="editbtn" href="javascript:void(0);" rel="external nofollow" rel="external nofollow" οnclick="addElement()">增 加</a> | <a class="editbtn" href="javascript:void(0);" rel="external nofollow" rel="external nofollow" οnclick="dropElement()">删减</a></td>
  </tr>
 </tbody>
</table>
 <input type="submit" name="submit" value=" 添 加 "/>
</form>

在做__APP__/Upimg/upimgs/ind/+ind这段时,刚开始我用的U()函数,但是把js变量i传入U()函数无法解析,所以在这里改为了url方式。

在获取表单数组并插入数据库时用循环遍历并写入数据库:

foreach($data['description'] as $key)
{
  $data1['picid']=$fid;
  $data1['description']=$data['description'][$i];
  $data1['image']=$data['image'][$i];
  $data1['px']=$data['px'][$i];
  $result=$model->add($data1);
  $i++;
}

$data是通过转换来的,可以直接用$_POST,做这个由于不熟悉js,所以在上面花了很多时间,刚开始我是用

var tr = document.createElement('tr');
tr.innerHTML= "<td width='5%' class='td_bg' align='right'><strong>描述:</strong></td>";
tr.innerHTML+= "<td class='td_bg' width='25%'><textarea name='des[]'></textarea></td>";  
tr.id = 'Elem'+i;
document.getElementById('pdr1').appendChild(tr);

但是ie不兼容,后又在网上找了上面的方法。

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

PHP 相关文章推荐
最省空间的计数器
Oct 09 PHP
php&amp;java(三)
Oct 09 PHP
php基础知识:类与对象(2) 自动加载对象
Dec 13 PHP
Discuz 6.0+ 批量注册用户名
Sep 13 PHP
关于PHP结束标签的使用细节探讨及联想
Mar 04 PHP
ThinkPHP2.0读取MSSQL提示Incorrect syntax near the keyword 'AS'的解决方法
Jun 25 PHP
php上传中文文件名乱码问题处理方案
Feb 03 PHP
PHP实现权限管理功能示例
Sep 22 PHP
php微信公众号开发之欢迎老朋友
Oct 20 PHP
Laravel5.4框架中视图共享数据的方法详解
Sep 05 PHP
php使用redis的几种常见操作方式和用法示例
Feb 20 PHP
PHP 99乘法表的几种实现代码
Oct 13 PHP
yii框架结合charjs统计上一年与当前年数据的方法示例
Apr 04 #PHP
yii框架结合charjs实现统计30天数据的方法
Apr 04 #PHP
yii 框架实现按天,月,年,自定义时间段统计数据的方法分析
Apr 04 #PHP
thinkphp5 框架结合plupload实现图片批量上传功能示例
Apr 04 #PHP
phpQuery采集网页实现代码实例
Apr 02 #PHP
通过PHP的Wrapper无缝迁移原有项目到新服务的实现方法
Apr 02 #PHP
php计数排序算法的实现代码(附四个实例代码)
Mar 31 #PHP
You might like
PHP实现通用alert函数的方法
2015/03/11 PHP
CI框架源码解读之利用Hook.php文件完成功能扩展的方法
2016/05/18 PHP
php 读写json文件及修改json的方法
2018/03/07 PHP
JS控制一个DIV层在指定时间内消失的方法
2014/02/17 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
jQuery.Highcharts.js绘制柱状图饼状图曲线图
2015/03/14 Javascript
使用jquery制作弹出框效果
2015/04/03 Javascript
Nodejs爬虫进阶教程之异步并发控制
2016/02/15 NodeJs
使用smartupload组件实现jsp+jdbc上传下载文件实例解析
2017/01/05 Javascript
整理关于Bootstrap警示框的慕课笔记
2017/03/29 Javascript
javascript实现日期三级联动下拉框选择菜单
2020/12/03 Javascript
vue.js实现用户评论、登录、注册、及修改信息功能
2020/05/30 Javascript
javascript字体颜色控件的开发 JS实现字体控制
2017/11/27 Javascript
AnglarJs中的上拉加载实现代码
2018/02/08 Javascript
JavaScript简单实现动态改变HTML内容的方法示例
2018/12/25 Javascript
详解node登录接口之密码错误限制次数(含代码)
2019/10/25 Javascript
Vue 自适应高度表格的实现方法
2020/05/13 Javascript
vue路由的配置和页面切换详解
2020/09/09 Javascript
[01:27:44]DOTA2-DPC中国联赛 正赛 PSG.LGD vs Aster BO3 第一场 1月24日
2021/03/11 DOTA
Python实现从URL地址提取文件名的方法
2015/05/15 Python
Python3访问并下载网页内容的方法
2015/07/28 Python
Python3中使用urllib的方法详解(header,代理,超时,认证,异常处理)
2016/09/21 Python
Python 3.3实现计算两个日期间隔秒数/天数的方法示例
2019/01/07 Python
Python 实现OpenCV格式和PIL.Image格式互转
2020/01/09 Python
Python多线程通信queue队列用法实例分析
2020/03/24 Python
UI自动化定位常用实现方法代码示例
2020/10/27 Python
奥地利智能家居和智能生活网上商店:tink.at
2019/10/07 全球购物
介绍一下Java中的static关键字
2012/05/12 面试题
历史专业个人求职信范文
2013/12/07 职场文书
晚宴邀请函范文
2014/01/15 职场文书
天鹅的故事教学反思
2014/02/04 职场文书
12岁生日演讲稿
2014/05/14 职场文书
责任书格式
2015/01/29 职场文书
证券区域经理岗位职责
2015/04/10 职场文书
升职自荐书
2019/05/09 职场文书
2019假期福利管理制度!
2019/07/15 职场文书