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 相关文章推荐
PHP4实际应用经验篇(5)
Oct 09 PHP
php环境配置 php5 mysql5 apache2 phpmyadmin安装与配置
Nov 17 PHP
Dedecms V3.1 生成HTML速度的优化办法
Mar 18 PHP
dede3.1分页文字采集过滤规则详说(图文教程)续二
Apr 03 PHP
PHP 开发环境配置(Zend Server安装)
Apr 28 PHP
PHP sprintf()函数用例解析
May 18 PHP
PHP三元运算符的结合性介绍
Jan 10 PHP
PHP反转字符串函数strrev()函数的用法
Feb 04 PHP
php简单实现多字节字符串翻转的方法
Mar 31 PHP
php批量删除超链接的实现方法
Oct 19 PHP
php常量详细解析
Oct 27 PHP
php将xml转化对象的实例详解
Nov 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读取mysql中文数据出现乱码的解决方法
2013/08/16 PHP
Yii2实现中国省市区三级联动实例
2017/02/08 PHP
php格式文件打开的四种方法
2018/02/24 PHP
PHP实现时间日期友好显示实现代码
2019/09/08 PHP
JavaScript中的集合及效率
2010/01/08 Javascript
jQuery阻止事件冒泡具体实现
2013/10/11 Javascript
jquery实现简单的二级导航下拉菜单效果
2015/09/07 Javascript
BootStrap下拉菜单和滚动监听插件实现代码
2016/09/26 Javascript
JS实现京东首页之页面顶部、Logo和搜索框功能
2017/01/12 Javascript
bootstrap输入框组件使用方法详解
2017/01/19 Javascript
用move.js库实现百叶窗特效
2017/02/08 Javascript
node.js中EJS 模板快速入门教程
2017/05/08 Javascript
详解vue.js 开发环境搭建最简单攻略
2017/06/12 Javascript
微信小程序之电影影评小程序制作代码
2017/08/03 Javascript
原生js 封装get ,post, delete 请求的实例
2017/08/11 Javascript
Vue组件选项props实例详解
2017/08/18 Javascript
限时抢购-倒计时的完整实例(分享)
2017/09/17 Javascript
Node.js实现发送邮件功能
2017/11/06 Javascript
layui框架与SSM前后台交互的方法
2019/09/12 Javascript
解决antd的Form组件setFieldsValue的警告问题
2020/10/29 Javascript
python在控制台输出进度条的方法
2015/06/20 Python
Python中使用插入排序算法的简单分析与代码示例
2016/05/04 Python
基于Python的关键字监控及告警
2017/07/06 Python
Django-migrate报错问题解决方案
2020/04/21 Python
Python直接赋值及深浅拷贝原理详解
2020/09/05 Python
python Matplotlib模块的使用
2020/09/16 Python
通过实例解析python subprocess模块原理及用法
2020/10/10 Python
详解pycharm连接远程linux服务器的虚拟环境的方法
2020/11/13 Python
canvas小画板之平滑曲线的实现
2020/08/12 HTML / CSS
size?德国官方网站:英国伦敦的球鞋精品店
2018/03/17 全球购物
Manduka官网:瑜伽垫、瑜伽毛巾和服装
2018/07/02 全球购物
出生公证委托书
2014/04/03 职场文书
评奖评优个人先进事迹材料
2015/11/04 职场文书
蔬果开业典礼发言稿应该怎么写?
2019/09/03 职场文书
golang elasticsearch Client的使用详解
2021/05/05 Golang
配置Kubernetes外网访问集群
2022/03/31 Servers