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过滤危险html代码
Aug 18 PHP
Ha0k 0.3 PHP 网页木马修改版
Oct 11 PHP
PHP安全技术之 实现php基本安全
Sep 04 PHP
PHP里的中文变量说明
Jul 23 PHP
PHP数据库调用类调用实例(详细注释)
Jul 12 PHP
php类自动加载器实现方法
Jul 28 PHP
PHP生成随机密码方法汇总
Aug 27 PHP
PHP+redis实现添加处理投票的方法
Nov 14 PHP
LINUX下PHP程序实现WORD文件转化为PDF文件的方法
May 13 PHP
Laravel使用memcached缓存对文章增删改查进行优化的方法
Oct 08 PHP
Smarty模板语法详解
Jul 20 PHP
laravel框架创建授权策略实例分析
Nov 22 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
给初学者的30条PHP最佳实践(荒野无灯)
2011/08/02 PHP
PHP获取数组最后一个值的2种方法
2015/01/21 PHP
PHP封装CURL扩展类实例
2015/07/28 PHP
Yii框架表单模型和验证用法
2016/05/20 PHP
一段批量给页面上的控件赋值js
2010/06/19 Javascript
40个有创意的jQuery图片和内容滑动及弹出插件收藏集之三
2012/01/03 Javascript
js从Cookies里面取值的简单实现
2014/06/30 Javascript
php常见的页面跳转方法汇总
2015/04/15 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
javascript简单实现类似QQ头像弹出效果的方法
2015/08/03 Javascript
Java框架SSH结合Easyui控件实现省市县三级联动示例解析
2016/06/12 Javascript
jquery中live()方法和bind()方法区别分析
2016/06/23 Javascript
jquery 动态合并单元格的实现方法
2016/08/26 Javascript
bootstrap多种样式进度条展示
2016/12/20 Javascript
jquery与ajax获取特殊字符实例详解
2017/01/08 Javascript
基于layer.js实现收货地址弹框选择然后返回相应的地址信息
2017/05/26 Javascript
详解有关easyUI的拖动操作中droppable,draggable用法例子
2017/06/03 Javascript
javascript 日期相减-在线教程(附代码)
2017/08/17 Javascript
JS实现身份证输入框的输入效果
2017/08/21 Javascript
react实现菜单权限控制的方法
2017/12/11 Javascript
Vue filter介绍及详细使用
2018/04/04 Javascript
微信小程序判断页面是否从其他页面返回的实例代码
2019/07/03 Javascript
vue el-table实现自定义表头
2019/12/11 Javascript
JS实现简易留言板特效
2019/12/23 Javascript
Python 描述符(Descriptor)入门
2016/11/20 Python
Python cookbook(字符串与文本)在字符串的开头或结尾处进行文本匹配操作
2018/04/20 Python
python爬取哈尔滨天气信息
2018/07/14 Python
修改默认的pip版本为对应python2.7的方法
2018/11/06 Python
Django 实现图片上传和显示过程详解
2019/07/18 Python
Python检查图片是否损坏及图片类型是否正确过程详解
2019/09/30 Python
Python扫描端口的实现
2021/01/25 Python
一加手机美国官方网站:OnePlus美国
2019/09/19 全球购物
俄罗斯童装网上商店:BebaKids
2020/06/06 全球购物
进程的查看和调度分别使用什么命令
2015/03/25 面试题
MySQL之PXC集群搭建的方法步骤
2021/05/25 MySQL
Django REST framework 限流功能的使用
2021/06/24 Python