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中支持多种编码的中文字符串截取函数!
Mar 20 PHP
PHP计算一年多少个星期和每周的开始和结束日期
Jul 01 PHP
php的curl封装类用法实例
Nov 07 PHP
PHP中常用的字符串格式化函数总结
Nov 19 PHP
yii用户注册表单验证实例
Dec 26 PHP
PHP爬虫之百万级别知乎用户数据爬取与分析
Jan 22 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
Jun 13 PHP
php json中文编码为null的解决办法
Dec 14 PHP
layui框架实现文件上传及TP3.2.3(thinkPHP)对上传文件进行后台处理操作示例
May 12 PHP
laravel框架邮箱认证实现方法详解
Nov 22 PHP
PHP var关键字相关原理及使用实例解析
Jul 11 PHP
PHP如何通过date() 函数格式化显示时间
Nov 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
制作美丽的拉花
2021/03/03 冲泡冲煮
php中文件上传的安全问题
2006/10/09 PHP
yii2框架中使用下拉菜单的自动搜索yii-widget-select2实例分析
2016/01/09 PHP
php函数mkdir实现递归创建层级目录
2016/10/27 PHP
PHP删除字符串中非字母数字字符方法总结
2019/01/20 PHP
javascript 二维数组的实现与应用
2010/03/16 Javascript
js中匿名函数的N种写法
2010/09/08 Javascript
JavaScript Array Flatten 与递归使用介绍
2011/10/30 Javascript
JavaScript简单实现鼠标拖动选择功能
2014/03/06 Javascript
jQuery鼠标事件汇总
2015/08/30 Javascript
浅谈原生JS实现jQuery的animate()动画示例
2017/03/08 Javascript
JS实现简易的图片拖拽排序实例代码
2017/06/09 Javascript
js模拟百度模糊搜索的实例
2017/08/04 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
vue项目中使用bpmn-自定义platter的示例代码
2020/05/11 Javascript
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python实现保证只能运行一个脚本实例
2015/06/24 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
Python-Tkinter Text输入内容在界面显示的实例
2019/07/12 Python
tensorflow多维张量计算实例
2020/02/11 Python
Python执行时间的几种计算方法
2020/07/31 Python
Ubuntu16安装Python3.9的实现步骤
2020/12/15 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
2021/02/20 Python
德国奢侈品网上商城:Mytheresa
2016/08/24 全球购物
时装界的“朋克之母”:Vivienne Westwood
2017/07/06 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
英国第一独立滑雪板商店:The Snowboard Asylum
2020/01/16 全球购物
人事部岗位职责范本
2014/03/05 职场文书
学雷锋活动总结报告
2014/06/26 职场文书
小学教师党员承诺书
2015/04/27 职场文书
现货白银电话营销话术
2015/05/29 职场文书
鲁冰花观后感
2015/06/10 职场文书
使用springboot暴露oracle数据接口的问题
2021/05/07 Oracle
Python中可变和不可变对象的深入讲解
2021/08/02 Python
直播实况, OMG破敌三路五十分钟大战神技局摩托车
2022/04/01 DOTA