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 相关文章推荐
php5.2.0内存管理改进
Jan 22 PHP
php中截取中文字符串的代码小结
Jul 17 PHP
php继承的一个应用
Sep 06 PHP
PHP中设置一个严格30分钟过期Session面试题的4种答案
Jul 30 PHP
php的ZipArchive类用法实例
Oct 20 PHP
PHP函数extension_loaded()用法实例
Jan 19 PHP
PHP使用CURL模拟登录的方法
Jul 08 PHP
前端必学之PHP语法基础
Jan 01 PHP
PHP的Laravel框架结合MySQL与Redis数据库的使用部署
Mar 21 PHP
PHP使用正则表达式实现过滤非法字符串功能示例
Jun 04 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 PHP
PHP如何使用cURL实现Get和Post请求
Jul 11 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数组内存耗用太多问题的解决方法
2010/04/05 PHP
个人写的PHP验证码生成类分享
2014/08/21 PHP
php示例详解Constructor Prototype Pattern 原型模式
2015/10/15 PHP
Zend Framework动作助手FlashMessenger用法详解
2016/03/05 PHP
php生成带logo二维码方法小结
2016/04/08 PHP
PHP读取目录树的实现方法分析
2019/03/22 PHP
PHP使用 Imagick 扩展实现图片合成,圆角处理功能示例
2019/09/09 PHP
PHP读取XML文件的方法实例总结【DOMDocument及simplexml方法】
2019/09/10 PHP
获取焦点时,利用js定时器设定时间执行动作
2010/04/02 Javascript
JQuery对checkbox操作 (循环获取)
2011/05/20 Javascript
关于jQuery的inArray 方法介绍
2011/10/08 Javascript
JS判断移动端访问设备并加载对应CSS样式
2014/06/13 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
老生常谈JavaScript 正则表达式语法
2016/08/20 Javascript
字太多用...代替的方法(两种)
2017/03/15 Javascript
BootStrap中jQuery插件Carousel实现轮播广告效果
2017/03/27 jQuery
详解Vue.js项目API、Router配置拆分实践
2018/03/16 Javascript
vue中的面包屑导航组件实例代码
2019/07/01 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
vue在响应头response中获取自定义headers操作
2020/07/24 Javascript
vue路由结构可设一层方便动态添加路由操作
2020/08/31 Javascript
vue使用canvas实现移动端手写签名
2020/09/22 Javascript
jQuery实现推拉门效果
2020/10/19 jQuery
H5 js点击按钮复制文本到粘贴板
2020/11/19 Javascript
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
Python面向对象程序设计之类的定义与继承简单示例
2019/03/18 Python
Django xadmin开启搜索功能的实现
2019/11/15 Python
Python多个装饰器的调用顺序实例解析
2020/05/22 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
CAT鞋英国官网:坚固耐用的靴子和鞋
2016/10/21 全球购物
美国孕妇装品牌:Destination Maternity
2018/02/04 全球购物
伦敦高达60%折扣的钻石珠宝商:Purely Diamonds
2018/06/24 全球购物
青蓝工程实施方案
2014/03/27 职场文书
百日安全生产活动总结
2014/07/05 职场文书
简短的36句中秋节祝福信息语句
2019/09/09 职场文书
python 离散点图画法的实现
2022/04/01 Python