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读取XML值的代码(推荐)
Jan 01 PHP
PHP序列号生成函数和字符串替换函数代码
Jun 07 PHP
初步介绍PHP扩展开发经验分享
Sep 06 PHP
php 深入理解strtotime函数的使用详解
May 23 PHP
destoon找回管理员密码的方法
Jun 21 PHP
codeigniter显示所有脚本执行时间的方法
Mar 21 PHP
Joomla开启SEF的方法
May 04 PHP
php页面跳转session cookie丢失导致不能登录等问题的解决方法
Dec 12 PHP
php redis实现对200w用户的即时推送
Mar 04 PHP
thinkPHP实现的省市区三级联动功能示例
May 05 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
Jul 13 PHP
PHP实现将标点符号正则替换为空格的方法
Aug 09 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
实用函数3
2007/11/08 PHP
mysql时区问题
2008/03/26 PHP
php中require和require_once的区别说明
2014/02/27 PHP
PHP小教程之实现链表
2014/06/09 PHP
destoon供应信息title调用出公司名称的方法
2014/08/22 PHP
Yii2基于Ajax自动获取表单数据的方法
2016/08/10 PHP
js 优化次数过多的循环 考虑到性能问题
2011/03/05 Javascript
js获取location.href的参数实例代码
2013/08/02 Javascript
Javascript的&amp;&amp;和||的另类用法
2014/07/23 Javascript
JQuery球队选择实例
2015/05/18 Javascript
Vue.js每天必学之构造器与生命周期
2016/09/05 Javascript
纯js实现html转pdf的简单实例(推荐)
2017/02/16 Javascript
Bootstrap表单制作代码
2017/03/17 Javascript
JavaScript实现的商品抢购倒计时功能示例
2017/04/17 Javascript
Angular CLI在Angular项目中如何使用scss详解
2018/04/10 Javascript
vue input实现点击按钮文字增删功能示例
2019/01/29 Javascript
基于elementUI实现图片预览组件的示例代码
2019/03/31 Javascript
js字符串处理之绝妙的代码
2019/04/05 Javascript
关于Layui Table隐藏列问题
2019/09/16 Javascript
JavaScript实现移动小精灵的案例代码
2020/12/12 Javascript
详解Python函数作用域的LEGB顺序
2016/05/14 Python
nohup后台启动Python脚本,log不刷新的解决方法
2019/01/14 Python
python使用参数对嵌套字典进行取值的方法
2019/04/26 Python
django多对多表的创建,级联删除及手动创建第三张表
2019/07/25 Python
python使用opencv实现马赛克效果示例
2019/09/28 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
html5画布旋转效果示例
2014/01/27 HTML / CSS
中国包裹转运寄送国际服务:Famiboat
2019/07/24 全球购物
家电业务员岗位职责
2014/03/10 职场文书
商场客服专员岗位职责
2014/06/13 职场文书
科学发展观标语
2014/10/08 职场文书
2015年乡镇安全生产工作总结
2015/05/19 职场文书
小学生读书笔记范文
2015/06/30 职场文书
小学英语听课心得体会
2016/01/14 职场文书
Html5大屏数据可视化开发的实现
2021/06/11 HTML / CSS
openstack中的rpc远程调用的方法
2021/07/09 Python