码迷,mamicode.com
首页 > Web开发 > 详细

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

时间:2019-03-03 09:47:06      阅读:246      评论:0      收藏:0      [点我收藏+]

标签:创建   http   效果   dom   change   code   box   方式   easyui   

由于要给格斗男神写搏击俱乐部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请求谈网页调试

标签:创建   http   效果   dom   change   code   box   方式   easyui   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!