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 相关文章推荐
文件上传的实现
Oct 09 PHP
使用php重新实现PHP脚本引擎内置函数
Mar 06 PHP
PHP管理内存函数 memory_get_usage()使用介绍
Sep 23 PHP
php中选择什么接口(mysql、mysqli)访问mysql
Feb 06 PHP
php检测图片木马多进制编程实践
Apr 11 PHP
浅析ThinkPHP中的pathinfo模式和URL重写
Jan 06 PHP
PHP中的按位与和按位或操作示例
Jan 27 PHP
CI框架学习笔记(一) - 环境安装、基本术语和框架流程
Oct 26 PHP
百度工程师讲PHP函数的实现原理及性能分析(二)
May 13 PHP
php结合正则获取字符串中数字
Jun 19 PHP
简单解决微信文章图片防盗链问题
Dec 17 PHP
PHP ob缓存以及ob函数原理实例解析
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
Windows PHP5和Apache的安装与配置
2009/06/08 PHP
PHP中利用substr_replace将指定两位置之间的字符替换为*号
2011/01/27 PHP
Yii2中cookie用法示例分析
2016/07/18 PHP
Aster vs Newbee BO5 第三场2.19
2021/03/10 DOTA
Js中的onblur和onfocus事件应用介绍
2013/08/27 Javascript
通过action传过来的值在option获取进行验证的方法
2013/11/14 Javascript
JS实现倒计时和文字滚动的效果实例
2014/10/29 Javascript
jQuery实现点击小图显示大图代码分享
2015/08/25 Javascript
Jquery时间轴特效(三种不同类型)
2015/11/02 Javascript
Angular 页面跳转时传参问题
2016/08/01 Javascript
jquery Banner轮播选项卡
2016/12/26 Javascript
JS实现旋转木马式图片轮播效果
2017/01/18 Javascript
详解nodejs微信公众号开发——2.自动回复
2017/04/10 NodeJs
jQuery实现radio第一次点击选中第二次点击取消功能
2017/05/15 jQuery
微信小程序访问豆瓣电影api的实现方法
2019/03/31 Javascript
ionic2.0双击返回键退出应用
2019/09/17 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
Python中itertools模块用法详解
2014/09/25 Python
在Python中使用PIL模块处理图像的教程
2015/04/29 Python
Ruby使用eventmachine为HTTP服务器添加文件下载功能
2016/04/20 Python
详解appium+python 启动一个app步骤
2017/12/20 Python
Python使用functools实现注解同步方法
2018/02/06 Python
pandas数据预处理之dataframe的groupby操作方法
2018/04/13 Python
Python基于多线程实现ping扫描功能示例
2018/07/23 Python
HTML5 video标签(播放器)学习笔记(一):使用入门
2015/04/24 HTML / CSS
南京某公司笔试题
2013/01/27 面试题
工商管理应届生求职信
2013/10/07 职场文书
草船借箭教学反思
2014/02/03 职场文书
法院四风对照检查材料思想汇报
2014/10/06 职场文书
党的群众路线查摆剖析材料
2014/10/10 职场文书
学生会感恩节活动方案
2014/10/11 职场文书
2015年出纳个人工作总结
2015/04/02 职场文书
战友聚会致辞
2015/07/28 职场文书
工作建议书范文
2019/07/08 职场文书
springboot中的pom文件 project报错问题
2022/01/18 Java/Android
SQL Server #{}可以防止SQL注入
2022/05/11 SQL Server