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


Posted in PHP onMarch 02, 2020

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

知识点总结

1.json格式标准

{

'key':"value"

}

{"state":"1","msg":"\u7b80\u5386\u6295\u9012\u6210\u529f\uff01"}

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

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

前端jquery ajax提交formdata 

$.ajax({

})

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

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

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

 HTML

<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

<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

$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程序设计有所帮助。

PHP 相关文章推荐
超级简单的发送邮件程序
Oct 09 PHP
使用 eAccelerator加速PHP代码的目的
Mar 16 PHP
PHP 中的批处理的实现
Jun 14 PHP
php中用于检测一个地理IP地址是否可用的代码
Feb 19 PHP
利用PHP扩展vld查看PHP opcode操作步骤
Mar 04 PHP
Php无限级栏目分类读取的实现代码
Feb 19 PHP
php实现的DateDiff和DateAdd时间函数代码分享
Aug 16 PHP
PHP日期函数date格式化UNIX时间的方法
Mar 19 PHP
php处理单文件、多文件上传代码分享
Aug 24 PHP
PHP实现的自定义数组排序函数与排序类示例
Nov 18 PHP
常用PHP封装分页工具类
Jan 14 PHP
PHP get_html_translation_table()函数用法讲解
Feb 16 PHP
php加速缓存器opcache,apc,xcache,eAccelerator原理与配置方法实例分析
Mar 02 #PHP
让whoops帮我们告别ThinkPHP6的异常页面
Mar 02 #PHP
php高性能日志系统 seaslog 的安装与使用方法分析
Feb 29 #PHP
PHP中关于php.ini参数优化详解
Feb 28 #PHP
php多进程并发编程防止出现僵尸进程的方法分析
Feb 28 #PHP
php 的多进程操作实践案例分析
Feb 28 #PHP
php 下 html5 XHR2 + FormData + File API 上传文件操作实例分析
Feb 28 #PHP
You might like
php 获取本机外网/公网IP的代码
2010/05/09 PHP
浅谈PHP表单提交(POST&amp;GET&amp;URL编/解码)
2017/04/03 PHP
PHP7新功能总结
2019/04/14 PHP
jQuery get和post 方法传值注意事项
2009/11/03 Javascript
深入理解JavaScript系列(13) This? Yes,this!
2012/01/18 Javascript
深入理解JavaScript 闭包究竟是什么
2013/04/12 Javascript
Jquery 表单验证类介绍与实例
2013/06/09 Javascript
js setTimeout opener的用法示例详解
2013/10/23 Javascript
原生js做的手风琴效果的导航菜单
2013/11/08 Javascript
jquery $(&quot;#variable&quot;) 循环改变variable的值示例
2014/02/23 Javascript
avalonjs实现仿微博的图片拖动特效
2015/05/06 Javascript
用Move.js配合创建CSS3动画的入门指引
2015/07/22 Javascript
jQuery异步提交表单的两种方式
2016/09/13 Javascript
VUE JS 使用组件实现双向绑定的示例代码
2017/01/10 Javascript
详解JSON和JSONP劫持以及解决方法
2019/03/08 Javascript
性能优化篇之Webpack构建速度优化的建议
2019/04/03 Javascript
关于vue2强制刷新,解决页面不会重新渲染的问题
2019/10/29 Javascript
JavaScript中reduce()的5个基本用法示例
2020/07/19 Javascript
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
[48:53]2014 DOTA2华西杯精英邀请赛 5 25 LGD VS VG第一场
2014/05/26 DOTA
使用pyecharts无法import Bar的解决方案
2020/04/23 Python
Django利用cookie保存用户登录信息的简单实现方法
2019/05/27 Python
python opencv 实现对图像边缘扩充
2020/01/19 Python
tensorflow -gpu安装方法(不用自己装cuda,cdnn)
2020/01/20 Python
python下对hsv颜色空间进行量化操作
2020/06/04 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
基于CSS3特效之动画:animation的应用
2013/05/09 HTML / CSS
Vivo俄罗斯官方在线商店:中国智能手机品牌
2019/10/04 全球购物
工业自动化毕业生自荐信范文
2014/01/04 职场文书
工作表现自我评价
2014/02/08 职场文书
社区义诊活动总结
2014/04/30 职场文书
美食节目策划方案
2014/05/31 职场文书
小学生运动会通讯稿
2014/09/23 职场文书
旷课检讨书范文
2014/10/30 职场文书
Java 常见的限流算法详细分析并实现
2022/04/07 Java/Android
nginx 配置指令之location使用详解
2022/05/25 Servers