分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

乱花渐入迷人眼------从解决jqueryEasyUI上传插件提交ajax请求谈网页调试

发布时间:2023-09-06 02:34责任编辑:林大明关键词:暂无标签

由于要给格斗男神写搏击俱乐部ERP系统,就要用到jquery Easyui插件规范数据和表单的录入,其中一项功能就是上传商品图片,

而且是在datagrid-detailview中使用filebox完成图片的上传和在线浏览,其效果如下

按照jqueryEasyUI惯用的套路,我们不妨在filebox的onChange的事件中,获取filebox的值就可以了,例如$("#imageurl").filebox(‘getValue’)

然后在实例化一个FormData,把filebox的值append上一提交就可以了,但是,thinkphp5 用request()->file(‘imageurl‘),居然获取不到!!!!

,翻了一晚上,最后看到3年前的一篇旧帖子,顿时深受启蒙,原帖子链接:https://bbs.csdn.net/topics/390994322,最关键的在于运行程序页面并审查filebox

加载文件后,网页dom的变化情况,有资深程序员发现,filebox加载文件后会创建一个input标签,其id值为:filebox_file_id_1,跟踪情况如下图所示

最大的收获是,学会了如何使用chorme定位dom元--------在点击F12以后进入开发者模式,定位到Element标签,点击右侧的html代码,左侧代码相关对应的

区域将会被添加背景色,这样一来,层级再多,也不用担心,最终,我们将抽丝剥茧,挖到最终要查看的元素

  • datagrid加载的php表单部分代码
<div class="form-group col-md-4"> ???????????????<label for="inputState">上传图片</label> ???????????????<input id=‘imageurl‘ style="width:300px" ?type="easyui-filebox" ?name=‘imageurl‘ style="margin-top:5px"> </div>
  • 相关jquery代码
 ?function jinerjihao()//写着玩的日期生成代码----因为thinkphp5的上传文件夹命名方式默认为日期 ???{ ???????var mydate = new Date(); ???????var myyear = mydate.getFullYear(); ???????console.log(typeof (myyear)); ???????var mymonth = mydate.getMonth()+1; ???????mymonth = (mymonth<10?"0"+mymonth.toString():mymonth.toString()); ???????var myday = mydate.getDate(); ???????myday = (myday<10?"0"+myday.toString():myday.toString()); ???????return myyear.toString()+mymonth+myday; ???}  //下列代码,filebox的值发生改变,就会向服务端发送图片,并回显上传的图片   ???$("#imageurl").filebox({ ???????onChange:function () { ???????????var dataform = new FormData(); ???????????dataform.append(‘imageurl‘,$("#filebox_file_id_1")[0].files[0]); ???????????$.ajax({ ???????????????url:‘/picview‘, ???????????????type:‘post‘, ???????????????contentType:false, ???????????????processData:false, ???????????????data:dataform, ???????????????MIME:‘multipart/form-data‘, ???????????????success:function (data) { ???????????????????console.log(data[‘mywords‘]); ???????????????????$("img").attr(‘src‘,‘/static/pics/head/‘+‘/‘+data[‘mywords‘]) ??????????????????/* $.each(data,function (k,v) { ???????????????????????console.log(k+"-------"+v); ???????????????????})*/ ???????????????} ???????????}) ???????} ???});
  • 服务端--thinkphp5框架下的上传功能,写的很简单
 function picview() { ???????$request=Request::instance(); ???????//return json($request->param()); ???????$pics = request()->file(‘imageurl‘); ???????//return json(["mywords"=>$pics]); ???????$targetpath = ROOT_PATH . ‘public‘.DS.‘static‘ . DS . ‘pics‘.DS.‘head‘; ???????if($pics) ???????{ ???????????$info = $pics->move($targetpath); ???????????if($info) ???????????{ ???????????????return json(["mywords"=>$info->getSaveName()]); ???????????} ???????} ?}

乱花渐入迷人眼------从解决jqueryEasyUI上传插件提交ajax请求谈网页调试

原文地址:https://www.cnblogs.com/saintdingspage/p/10463884.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved