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生成UTF8文件的方法
May 15 PHP
php array_filter除去数组中的空字符元素
Jun 21 PHP
php5.5中类级别的常量使用介绍
Oct 02 PHP
Codeigniter出现错误提示Error with CACHE directory的解决方案
Jun 12 PHP
php使用fputcsv()函数csv文件读写数据的方法
Jan 06 PHP
PHP递归遍历指定目录的文件并统计文件数量的方法
Mar 24 PHP
php通过分类列表产生分类树数组的方法
Apr 20 PHP
PHP7.0版本备注
Jul 23 PHP
详解PHP的Yii框架中自带的前端资源包的使用
Mar 31 PHP
Thinkphp实现短信验证注册功能
Oct 18 PHP
PHP用函数嵌入网站访问量计数器
Oct 27 PHP
open_basedir restriction in effect. 原因与解决方法
Mar 14 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
从零开始 教你如何搭建Discuz!4.1论坛
2006/07/07 PHP
在IIS7.0下面配置PHP 5.3.2运行环境的方法
2010/04/13 PHP
php的日期处理函数及uchome的function_coomon中日期处理函数的研究
2011/01/12 PHP
php 函数中使用static的说明
2012/06/01 PHP
php中动态变量用法实例
2015/06/10 PHP
php制作基于xml的RSS订阅源功能示例
2017/02/08 PHP
php 可变函数使用小结
2018/06/12 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
laravel 查询数据库获取结果实现判断是否为空
2019/10/24 PHP
PHP Beanstalkd消息队列的安装与使用方法实例详解
2020/02/21 PHP
ExtJS 2.0实用简明教程 之Border区域布局
2009/04/29 Javascript
学习ExtJS(二) Button常用方法
2009/10/07 Javascript
通过JS获取用户本地图片路径并显示的代码
2012/02/16 Javascript
javascript强制点击广告的方法
2015/02/06 Javascript
jquery移动端TAB触屏切换实现效果
2020/12/22 Javascript
移动端滑动插件Swipe教程
2016/10/16 Javascript
简单实现AngularJS轮播图效果
2020/04/10 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
详解Vue 方法与事件处理器
2017/06/20 Javascript
最适应的vue.js的form提交涉及多种插件【推荐】
2018/08/27 Javascript
Nodejs核心模块之net和http的使用详解
2019/04/02 NodeJs
Vue的click事件防抖和节流处理详解
2019/11/13 Javascript
python网络编程学习笔记(八):XML生成与解析(DOM、ElementTree)
2014/06/09 Python
Python中用pycurl监控http响应时间脚本分享
2015/02/02 Python
python:pandas合并csv文件的方法(图书数据集成)
2018/04/12 Python
Python完成哈夫曼树编码过程及原理详解
2019/07/29 Python
pandas 选取行和列数据的方法详解
2019/08/08 Python
浅谈pandas.cut与pandas.qcut的使用方法及区别
2020/03/03 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
Sublime Text3最新激活注册码分享适用2020最新版 亲测可用
2020/11/12 Python
贝玲妃美国官方网站:Benefit美国
2016/08/28 全球购物
优纳科技软件测试面试题
2012/05/15 面试题
求职导师推荐信范文
2015/03/27 职场文书
2016年教师学习廉政准则心得体会
2016/01/20 职场文书
Redis源码阅读:Redis字符串SDS详解
2021/07/15 Redis
VS2019连接MySQL数据库的过程及常见问题总结
2021/11/27 MySQL