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维护文件系统
Oct 09 PHP
一个简单的PHP入门源程序
Oct 09 PHP
PHP mkdir()定义和用法
Jan 14 PHP
基于ubuntu下nginx+php+mysql安装配置的具体操作步骤
Apr 28 PHP
php过滤敏感词的示例
Mar 31 PHP
ThinkPHP视图查询详解
Jun 30 PHP
dedecms中使用php语句指南
Nov 13 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
Mar 29 PHP
eclipse php wamp配置教程
Jun 30 PHP
修改Laravel5.3中的路由文件与路径
Aug 10 PHP
Laravel 简单实现Ajax滚动加载示例
Oct 22 PHP
PHP实现考试倒计时功能代码
Apr 16 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 和 XML: 使用expat函数(一)
2006/10/09 PHP
PHP配置把错误日志以邮件方式发送方法(Windows系统)
2015/06/23 PHP
PHP模板解析类实例
2015/07/09 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
Zend Framework框架中实现Ajax的方法示例
2017/06/27 PHP
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
HTML node相关的一些资料整理
2010/01/01 Javascript
原生JS可拖动弹窗效果实例代码
2013/11/09 Javascript
jquery+ajax+text文本框实现智能提示完整实例
2016/07/09 Javascript
Highcharts学习之数据列
2016/08/03 Javascript
js放大镜放大购物图片效果
2017/01/18 Javascript
Bootstrap页面标题Page Header的实现方法
2017/03/22 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
详解使用mpvue开发github小程序总结
2018/07/25 Javascript
vue自动路由-单页面项目(非build时构建)
2019/04/30 Javascript
vue 实现强制类型转换 数字类型转为字符串
2019/11/07 Javascript
详解ES6 CLASS在微信小程序中的应用实例
2020/04/24 Javascript
[03:35]2018年度DOTA2最佳辅助位选手5号位-完美盛典
2018/12/17 DOTA
Python自动重试HTTP连接装饰器
2015/04/28 Python
tensorflow建立一个简单的神经网络的方法
2018/02/10 Python
在python win系统下 打开TXT文件的实例
2018/04/29 Python
Flask框架踩坑之ajax跨域请求实现
2019/02/22 Python
利用python实现对web服务器的目录探测的方法
2019/02/26 Python
python实现多进程通信实例分析
2019/09/01 Python
python3爬取torrent种子链接实例
2020/01/16 Python
Python+Selenium随机生成手机验证码并检查页面上是否弹出重复手机号码提示框
2020/09/21 Python
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
泰国网上购物:Shopee泰国
2018/09/14 全球购物
以设计师精品品质提供快速时尚:Mostata
2019/05/10 全球购物
幼儿园小班评语大全
2014/04/17 职场文书
保管员岗位职责
2015/02/14 职场文书
优秀教师工作总结2015
2015/07/22 职场文书
开学随笔
2015/08/15 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
尝试使用Python爬取城市租房信息
2022/04/12 Python