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 相关文章推荐
JAVA/JSP学习系列之四
Oct 09 PHP
php 文件夹删除、php清除缓存程序
Aug 25 PHP
php 数学运算验证码实现代码
Oct 11 PHP
php imagecreatetruecolor 创建高清和透明图片代码小结
May 15 PHP
php无限极分类实现的两种解决方法
Apr 28 PHP
PHP生成迅雷、快车、旋风等软件的下载链接代码实例
May 12 PHP
ThinkPHP中的关联模型注意点
Jun 16 PHP
ThinkPHP连接数据库及主从数据库的设置教程
Aug 22 PHP
CI框架装载器Loader.php源码分析
Nov 04 PHP
PHP程序员必须清楚的问题汇总
Dec 18 PHP
PHP实现的DES加密解密实例代码
Apr 06 PHP
YII框架中使用memcache的方法详解
Aug 02 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中使用sockets:从新闻组中获取文章
2006/10/09 PHP
php获取从百度搜索进入网站的关键词的详细代码
2014/01/08 PHP
PHP线程的内存回收问题
2016/07/08 PHP
Laravel框架实现文件上传的方法分析
2019/09/29 PHP
基于PHP实现短信验证码发送次数限制
2020/07/11 PHP
Javascript之旅 对象的原型链之由来
2010/08/25 Javascript
nodejs下打包模块archiver详解
2014/12/03 NodeJs
javascript操作符&quot;!~&quot;详解
2015/02/10 Javascript
JavaScript之AOP编程实例
2015/07/17 Javascript
javascript类型系统——日期Date对象全面了解
2016/07/13 Javascript
jQuery序列化表单成对象的简单实现
2016/11/29 Javascript
vue.js中$set与数组更新方法
2018/03/08 Javascript
js中apply和Math.max()函数的问题及区别介绍
2018/03/27 Javascript
js拖动滑块和点击水波纹效果实例代码
2018/10/16 Javascript
判断iOS、Android以及PC端的示例代码
2018/11/15 Javascript
从0到1构建vueSSR项目之路由的构建
2019/03/07 Javascript
JS 设计模式之:单例模式定义与实现方法浅析
2020/05/06 Javascript
springboot+vue+对接支付宝接口+二维码扫描支付功能(沙箱环境)
2020/10/15 Javascript
全面理解Python中self的用法
2016/06/04 Python
python实现雨滴下落到地面效果
2018/06/21 Python
python 使用matplotlib 实现从文件中读取x,y坐标的可视化方法
2019/07/04 Python
python多线程实现TCP服务端
2019/09/03 Python
Python 迭代,for...in遍历,迭代原理与应用示例
2019/10/12 Python
浅谈keras通过model.fit_generator训练模型(节省内存)
2020/06/17 Python
Python unittest discover批量执行代码实例
2020/09/08 Python
阻止移动设备(手机、pad)浏览器双击放大网页的方法
2014/06/03 HTML / CSS
Canvas与图片压缩的示例代码
2017/11/28 HTML / CSS
马德里竞技官方网上商店:Atletico Madrid Shop
2019/03/31 全球购物
3个CCIE对一个工程师的面试题
2012/05/06 面试题
应届行政管理专业个人自我评价
2013/12/28 职场文书
函授毕业个人自我评价
2014/02/20 职场文书
2014财务人员自我评价范文
2014/09/21 职场文书
建筑质检员岗位职责
2015/04/08 职场文书
小学生家长意见
2015/06/03 职场文书
解决python存数据库速度太慢的问题
2021/04/23 Python
使用Python拟合函数曲线
2022/04/14 Python