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之第二天
Oct 09 PHP
建站常用13种PHP开源CMS比较
Aug 23 PHP
php cli 方式 在crotab中运行解决
Feb 08 PHP
PHP 使用header函数设置HTTP头的示例解析 表头
Jun 17 PHP
php class类的用法详细总结
Oct 17 PHP
php获取目标函数执行时间示例
Mar 04 PHP
PHP开发微信支付的代码分享
May 25 PHP
总结PHP中数值计算的注意事项
Aug 14 PHP
php使用preg_match()函数验证ip地址的方法
Jan 07 PHP
PHP基于自增数据如何生成不重复的随机数示例
May 19 PHP
php处理静态页面:页面设置缓存时间实例
Jun 22 PHP
Yii框架中使用PHPExcel的方法分析
Jul 25 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脚本的10个技巧(7)
2006/10/09 PHP
php你的验证码安全码?
2007/01/02 PHP
PHP无法访问远程mysql的问题分析及解决
2013/05/16 PHP
php中unserialize返回false的解决方法
2014/09/22 PHP
PHP函数import_request_variables()用法分析
2016/04/02 PHP
php封装单文件上传到数据库(路径)
2017/10/15 PHP
laravel框架模型、视图与控制器简单操作示例
2019/10/10 PHP
jquery 绑定回车动作扑捉回车键触发的事件
2014/03/26 Javascript
NodeJS Express框架中处理404页面一个方式
2014/05/28 NodeJs
jquery插件qrcode在线生成二维码
2015/04/26 Javascript
JavaScript中标识符提升问题
2015/06/11 Javascript
jQuery中的each()详细介绍(推荐)
2016/05/25 Javascript
jQuery实现微信长按识别二维码功能
2016/08/26 Javascript
如何在Angular.JS中接收并下载PDF
2016/11/26 Javascript
微信小程序实现图片自适应(支持多图)
2017/01/25 Javascript
BootStrap Table复选框默认选中功能的实现代码(从数据库获取到对应的状态进行判断是否为选中状态)
2017/07/11 Javascript
代码实例ajax实现点击加载更多数据图片
2018/10/12 Javascript
async/await优雅的错误处理方法总结
2019/01/30 Javascript
Node.js path模块,获取文件后缀名操作
2020/11/07 Javascript
python打开url并按指定块读取网页内容的方法
2015/04/29 Python
python基础while循环及if判断的实例讲解
2017/08/25 Python
快速解决pyqt5窗体关闭后子线程不同时退出的问题
2019/06/19 Python
Python 3.8正式发布,来尝鲜这些新特性吧
2019/10/15 Python
python GUI库图形界面开发之PyQt5滚动条控件QScrollBar详细使用方法与实例
2020/03/06 Python
python实现批量修改文件名
2020/03/23 Python
Python pandas对excel的操作实现示例
2020/07/21 Python
python绘制汉诺塔
2021/03/01 Python
谈谈对css属性box-sizing的了解
2017/01/04 HTML / CSS
Ejb技术面试题
2015/04/29 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
小学安全教育材料
2014/02/17 职场文书
校长竞聘演讲稿
2014/05/16 职场文书
村官个人总结范文
2015/03/03 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
Python接口自动化之文件上传/下载接口详解
2022/04/05 Python
详细介绍MySQL中limit和offset的用法
2022/05/06 MySQL