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 相关文章推荐
PHP 输出简单动态WAP页面
Jun 09 PHP
MayFish PHP的MVC架构的开发框架
Aug 13 PHP
php set_time_limit(0) 设置程序执行时间的函数
May 26 PHP
php 无限级数据JSON格式及JS解析
Jul 17 PHP
php用数组返回无限分类的列表数据的代码
Aug 08 PHP
PHP连接局域网MYSQL数据库的简单实例
Aug 26 PHP
一个PHP二维数组排序的函数分享
Jan 17 PHP
PHP程序漏洞产生的原因分析与防范方法说明
Mar 06 PHP
php中return的用法实例分析
Feb 28 PHP
Symfony模板的快捷变量用法实例
Mar 17 PHP
解决laravel5.4下的group by报错的问题
Oct 16 PHP
laravel 查询数据库获取结果实现判断是否为空
Oct 24 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变量作用域的深入解析
2013/06/03 PHP
PHP实现QQ、微信和支付宝三合一收款码实例代码
2018/02/19 PHP
IE6 弹出Iframe层中的文本框“经常”无法获得输入焦点
2009/12/27 Javascript
超棒的响应式布局jQuery插件Freetile.js
2014/11/17 Javascript
JavaScript中用字面量创建对象介绍
2014/12/31 Javascript
Javascript递归打印Document层次关系实例分析
2015/05/15 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
JS+CSS实现美化的下拉列表框效果
2015/08/11 Javascript
jQuery点击按钮弹出遮罩层且内容居中特效
2015/12/14 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
2017/08/15 jQuery
JS+canvas绘制的动态机械表动画效果
2017/09/12 Javascript
浅谈mint-ui 填坑之路
2017/11/06 Javascript
JavaScript实现多叉树的递归遍历和非递归遍历算法操作示例
2018/02/08 Javascript
Node.js使用cookie保持登录的方法
2018/05/11 Javascript
深入理解Vue 组件之间传值
2018/08/16 Javascript
Vue 指令实现按钮级别权限管理功能
2019/04/23 Javascript
Python设计实现的计算器功能完整实例
2017/08/18 Python
python语音识别实践之百度语音API
2018/08/30 Python
python utc datetime转换为时间戳的方法
2019/01/15 Python
python 对字典按照value进行排序的方法
2019/05/09 Python
python绘制双Y轴折线图以及单Y轴双变量柱状图的实例
2019/07/08 Python
更新pip3与pyttsx3文字语音转换的实现方法
2019/08/08 Python
Python IDLE或shell中切换路径的操作
2020/03/09 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
2020/05/09 Python
Python读取ini配置文件传参的简单示例
2021/01/05 Python
CSS3属性box-shadow使用指南
2014/12/09 HTML / CSS
极简的HTML5模版
2015/07/09 HTML / CSS
HTML5响应式(自适应)网页设计的实现
2017/11/17 HTML / CSS
假释思想汇报范文
2014/10/11 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
平遥古城导游词
2015/02/03 职场文书
2016大一新生入学教育心得体会
2016/01/23 职场文书
Python echarts实现数据可视化实例详解
2022/03/03 Python
Go本地测试解耦任务拆解及沟通详解Go本地测试的思路沟通的重要性总结
2022/06/21 Golang