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 相关文章推荐
基于PHP Web开发MVC框架的Smarty使用说明
Apr 19 PHP
PHP中将ip地址转成十进制数的两种实用方法
Aug 15 PHP
PHP SPL使用方法和他的威力
Nov 12 PHP
PHP两种去掉数组重复值的方法比较
Jun 19 PHP
PHP延迟静态绑定示例分享
Jun 22 PHP
smarty中post用法实例
Nov 28 PHP
常见php数据文件缓存类汇总
Dec 05 PHP
PHP实现抓取Google IP并自动修改hosts文件
Feb 12 PHP
PHP 9 大缓存技术总结
Sep 17 PHP
Yii框架引用插件和ckeditor中body与P标签去除的方法
Jan 19 PHP
php实现留言板功能
Mar 05 PHP
PHP实现多图上传和单图上传功能
May 17 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生成唯一订单号的方法汇总
2015/04/16 PHP
php获取服务器操作系统相关信息的方法
2016/10/08 PHP
postman的安装与使用方法(模拟Get和Post请求)
2018/08/06 PHP
10个新的最有前途的JavaScript框架
2009/03/12 Javascript
javascript json2 使用方法
2010/03/16 Javascript
javascript 得到变量类型的函数
2010/05/19 Javascript
Javascript中的window.event.keyCode使用介绍
2011/04/26 Javascript
jQuery使用之设置元素样式用法实例
2015/01/19 Javascript
JQuery标签页效果的两个实例讲解(4)
2015/09/17 Javascript
DeviceOne 让你一见钟情的App快速开发平台
2016/02/17 Javascript
jQuery on()方法绑定动态元素的点击事件实例代码浅析
2016/06/16 Javascript
ES6正则的扩展实例详解
2017/04/25 Javascript
纯JS实现简单的日历
2017/06/26 Javascript
详解ES6中的三种异步解决方案
2018/06/28 Javascript
小程序中英文混合排序问题解决
2019/08/02 Javascript
浅入深出Vue之自动化路由
2019/08/06 Javascript
浅析vue-cli3配置webpack-bundle-analyzer插件【推荐】
2019/10/23 Javascript
[06:09]辉夜杯主赛事开幕式
2015/12/25 DOTA
Python访问MySQL封装的常用类实例
2014/11/11 Python
用Python从零实现贝叶斯分类器的机器学习的教程
2015/03/31 Python
详解python如何调用C/C++底层库与互相传值
2016/08/10 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
Numpy掩码式数组详解
2018/04/17 Python
python sklearn常用分类算法模型的调用
2019/10/16 Python
Python中生成一个指定长度的随机字符串实现示例
2019/11/06 Python
原生 JS+CSS+HTML 实现时序图的方法
2019/07/31 HTML / CSS
HTML5 3D书本翻页动画的实现示例
2019/08/28 HTML / CSS
客户代表自我评价范例
2013/09/24 职场文书
运动会方阵解说词
2014/02/12 职场文书
殡葬服务心得体会
2014/09/11 职场文书
2014年会计人员工作总结
2014/12/10 职场文书
2015年乡镇民政工作总结
2015/05/13 职场文书
合作意向书范本
2019/04/17 职场文书
Ajax常用封装库——Axios的使用
2021/05/08 Javascript
一篇文章学会Vue中间件管道
2021/06/20 Vue.js
SpringCloud的JPA连接PostgreSql的教程
2021/06/26 Java/Android