thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json完整实例

吾爱主题 阅读:137 2021-09-30 13:49:00 评论:0

本文实例讲述了thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json。分享给大家供大家参考,具体如下:

知识点总结

1.json格式标准

?
1 2 3 4 5 6 7 {   'key' : "value"   }   { "state" : "1" , "msg" : "\u7b80\u5386\u6295\u9012\u6210\u529f\uff01" }

前端jquery ajax提交formdata 

?
1 2 3 $.ajax({   })

 formdata 获取表单数据 包括文件上传

 HTML

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 <form class = "am-form" id= "recruitinfo" >           <div class = "col-lg6 col-md-6 col-xs-12 m1rem" >           <label>姓名</label>           <input type= "text" name= "post[name]" id= "name" required >         </div>           <div class = "col-lg6 col-md-6 col-xs-12 m1rem" >           <label>手机号</label>           <input type= "text" name= "post[iphone]" id= "iphone" required>         </div>           <div class = "col-lg10 col-md-10 col-xs-12 m2rem" >             <label>附件简历:(您的详细信息请都写在简历上,只接受word文档)</label>             <div class = "am-form-group am-form-file" >             <button type= "button" class = "am-btn am-btn-danger am-btn-sm" >               <i class = "am-icon-cloud-upload" ></i> 选择要上传的简历</button>             <input id= "doc-form-file" type= "file"  name= "doc" >           </div>           <div id= "file-list" ></div>           <script>             $( function () {               $( '#doc-form-file' ).on( 'change' , function () {                 var fileNames = '' ;                 $.each(this.files, function () {                   fileNames += '<span class="am-badge">' + this.name + '</span> ' ;                 });                 $( '#file-list' ).html(fileNames);               });             });           </script>             <input type= "hidden"  name= "post[jobname]" id= "jobname"  value= "{$data.job}" >           <input type= "hidden"  name= "post[jobnameid]" id= "jobnameid" value= "{$data.id}" >             </div>           <div class = "col-lg-6 col-md-6 col-xs-12" >           <button type= "submit" class = "am-btn am-btn-primary" onclick= "submitform()" >提交</button>           <a href= "javascript:window.history.back(-1);" rel= "external nofollow" class = "am-btn am-btn-default" >返回</a>         </div>         </form>

 JS

?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 <script type= "text/javascript" >         function submitform() {             event.preventDefault();           var form =document.getElementById( 'recruitinfo' ),             formdata = new FormData(form);               var url = '{:url("recruitinfo/postfrom")}' ;               $.ajax({             url:url,             type: 'post' ,             data:formdata,             dataType: 'json' ,             processData: false ,             contentType: false ,             success: function (res) {               console.log( '请求成功!' )               console.log(res)             },             error: function (XMLHttpRequest, textStatus, errorThrown) {               console.log( '出错啦!' )               console.log(XMLHttpRequest);               console.log(textStatus);               console.log(errorThrown);             }           })           }       </script>

php json_encode()函数转成json

?
1 2 3 4 5 6 7 8 9 10 $callbackinfo = array (           'state' => '1' ,           'msg'  => '简历投递成功!' ,         );                   $jsondata =json_encode( $callbackinfo );                  echo $jsondata ;

问题

1.前端SyntaxError: Unexpected token < in JSON at position 0 报错

报错原因

使用的thinkphp5

没想到是因为使用了dump()函数 var_dump 这些最后echo出来的不正确导致的,还要要按标准格式来啊

解决方法

去掉dump相似的函数

希望本文所述对大家基于ThinkPHP框架的PHP程序设计有所帮助。

原文链接:https://www.cnblogs.com/xxx91hx/p/9294954.html

可以去百度分享获取分享代码输入这里。
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

【腾讯云】云服务器产品特惠热卖中
搜索
标签列表
    关注我们

    了解等多精彩内容