thinkpphp 5+ajax 는 formdata 를 사용 하여 데 이 터 를 제출 합 니 다(파일 업로드 포함)배경 에서 json 의 전체 인 스 턴 스 를 되 돌려 줍 니 다.

이 사례 는 thinkpp 5+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:예기 치 않 은 토 큰원인 을 잘못 보고 하 다
사용 하 는 thinkpp 5
Dump()함수 var 를 사용 해서 그런 지 몰랐어 요.dump 이 마지막 echo 가 잘못 나 온 것 은 표준 형식 으로 해 야 합 니 다.
해결 방법
dump 비슷 한 함수 제거
thinkpHP 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있다.
본 고 는 ThinkPHP 프레임 워 크 를 기반 으로 한 PHP 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기