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

 更新时间:2020年03月02日 12:45:40   作者:星耀学园  
这篇文章主要介绍了thinkphp5 + ajax 使用formdata提交数据(包括文件上传) 后台返回json操作,结合实例形式分析了thinkphp5 + ajax 使用formdata提交数据、文件上传与后台返回json遇到的相关问题即解决方法,需要的朋友可以参考下

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

知识点总结

1.json格式标准

{

'key':"value"

}

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

前端jquery ajax提交formdata 

$.ajax({

})

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

 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相关内容感兴趣的读者可查看本站专题:《ThinkPHP入门教程》、《thinkPHP模板操作技巧总结》、《ThinkPHP常用方法总结》、《codeigniter入门教程》、《CI(CodeIgniter)框架进阶教程》、《Zend FrameWork框架入门教程》及《PHP模板技术总结》。

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

相关文章

  • yii操作cookie实例简介

    yii操作cookie实例简介

    这篇文章主要介绍了yii操作cookie实例,需要的朋友可以参考下
    2014-07-07
  • 详解laravel中blade模板带条件分页

    详解laravel中blade模板带条件分页

    Blade模板是Laravel提供一个既简单又强大的模板引擎,这篇文章主要介绍了laravel中blade模板带条件分页功能,本文通过示例代码给大家介绍了,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-03-03
  • PHP模板引擎Smarty中的保留变量用法分析

    PHP模板引擎Smarty中的保留变量用法分析

    这篇文章主要介绍了PHP模板引擎Smarty中的保留变量用法,较为详细的分析说明了Smarty中的保留变量的功能与具体使用方法,需要的朋友可以参考下
    2016-04-04
  • thinkPHP5.0框架模块设计详解

    thinkPHP5.0框架模块设计详解

    这篇文章主要介绍了thinkPHP5.0框架模块设计,简单讲述了thinkPHP5.0目录结构、命名规范并结合实例形式分析了模块类库的原理与访问方法,需要的朋友可以参考下
    2017-03-03
  • Laravel+jQuery实现AJAX分页效果

    Laravel+jQuery实现AJAX分页效果

    这篇文章主要介绍了Laravel+jQuery实现AJAX分页效果的方法,简单介绍了jQuery的ajax调用结合Laravel控制器实现无刷新分页功能的相关操作技巧,需要的朋友可以参考下
    2016-09-09
  • 如何使用微信公众平台开发模式实现多客服

    如何使用微信公众平台开发模式实现多客服

    其实微信公众平台的多客服功能已经出来好久了,并且一出来的时候我就已经为自己的公众号实现了,原本以为大家都已经会了,但是今天还是有人问起这个多客服功能怎么使用,我找了下网上也没什么好的教程,今天我就给大家发一篇比较简单易懂的教程吧
    2016-01-01
  • 详解WordPress开发中过滤属性以及Sql语句的函数使用

    详解WordPress开发中过滤属性以及Sql语句的函数使用

    这篇文章主要介绍了WordPress开发中过滤属性以及Sql语句的函数使用,分别是对esc_attr()函数和esc_sql()函数的讲解,需要的朋友可以参考下
    2015-12-12
  • PHP实现的带超时功能get_headers函数

    PHP实现的带超时功能get_headers函数

    这篇文章主要介绍了PHP实现的带超时功能的get_headers函数,本文直接给出实现代码,需要的朋友可以参考下
    2015-02-02
  • CI操作cookie的方法分析(基于helper类库)

    CI操作cookie的方法分析(基于helper类库)

    这篇文章主要介绍了CI操作cookie的方法,结合实例形式分析了CI使用helper类库的cookie类库实现操作cookie的相关技巧,需要的朋友可以参考下
    2016-03-03
  • thinkphp连贯操作实例分析

    thinkphp连贯操作实例分析

    这篇文章主要介绍了thinkphp连贯操作,以实例形式较为详细的分析了连贯操作的具体用法及常用的方法含义,是非常实用的技巧,需要的朋友可以参考下
    2014-11-11

最新评论