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 图像尺寸调整代码
May 26 PHP
PHP中uploaded_files函数使用方法详解
Mar 09 PHP
ThinkPHP实现支付宝接口功能实例
Dec 02 PHP
PHP上传文件时自动分配路径的方法
Jan 09 PHP
php字符串过滤与替换小结
Jan 26 PHP
深入剖析浏览器退出之后php还会继续执行么
May 17 PHP
Zend Framework校验器Zend_Validate用法详解
Dec 09 PHP
PHP执行shell脚本运行程序不产生core文件的方法
Dec 28 PHP
PHP操作MySQL中BLOB字段的方法示例【存储文本与图片】
Sep 15 PHP
Laravel中批量赋值Mass-Assignment的真正含义详解
Sep 29 PHP
thinkphp5框架API token身份验证功能示例
May 21 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
全国FM电台频率大全 - 17 湖北省
2020/03/11 无线电
关于PHP中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
使用字符串函数输出整数化的PHP版本号
2006/10/09 PHP
一个改进的UBB类
2006/10/09 PHP
php adodb连接不同数据库
2009/03/19 PHP
php上传图片客户端和服务器端实现方法
2015/03/30 PHP
php实现用于计算执行时间的类实例
2015/04/18 PHP
基于PHP的加载类操作以及其他两种魔术方法的应用实例
2017/08/28 PHP
Laravel5.0+框架邮件发送功能实现方法图文与实例详解
2019/04/23 PHP
php字符串截取函数mb_substr用法实例分析
2019/06/25 PHP
对象特征检测法判断浏览器对javascript对象的支持
2009/07/25 Javascript
基于Jquery的实现回车键Enter切换焦点
2010/09/14 Javascript
jQuery获取文本节点之 text()/val()/html() 方法区别
2011/03/01 Javascript
解释&amp;&amp;和||在javascript中的另类用法
2014/07/28 Javascript
jQuery实现跟随鼠标运动图层效果的方法
2015/02/02 Javascript
JS实现仿腾讯微博无刷新删除微博效果代码
2015/10/16 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
VUE脚手架的下载和配置步骤详解
2019/04/01 Javascript
[39:32]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS DT 第二场
2014/05/23 DOTA
Python时区设置方法与pytz查询时区教程
2013/11/27 Python
基于python编写的微博应用
2014/10/17 Python
用Python登录好友QQ空间点赞的示例代码
2017/11/04 Python
Python3.5内置模块之random模块用法实例分析
2019/04/26 Python
django基于restframework的CBV封装详解
2019/08/08 Python
Python实现打印实心和空心菱形
2019/11/23 Python
在tensorflow中实现去除不足一个batch的数据
2020/01/20 Python
jupyter notebook快速入门及使用详解
2020/11/13 Python
CSS3中的弹性布局em运用入门详解 1em等于多少像素
2021/02/08 HTML / CSS
苏宁红孩子母婴商城:redbaby
2017/02/12 全球购物
运动会跳远加油稿
2014/02/20 职场文书
经济贸易系毕业生求职信
2014/05/31 职场文书
2014教师个人自我评价范文
2014/09/13 职场文书
会计工作态度自我评价
2015/03/06 职场文书
投诉信范文
2015/07/02 职场文书
Nginx进程调度问题详解
2021/09/25 Servers
Java 多线程并发FutureTask
2022/06/28 Java/Android