AJAX / jQuery / PHP-AJAX 양식 처리기 "잘못된 호출"

데미안 도만

나는 AJAX form handler. 문제는 형식의 다른 데이터와 함께 이미지 파일을 업로드하는 데 문제가 있다는 것입니다.

업로드 된 파일의 원인은 다음과 같습니다.

포착되지 않은 TypeError : 잘못된 호출

나는이 있기 때문에 추측 AJAX formhandler했다 processData문자열로 파일을 변환 할 수 없습니다 때문에 기본값으로 설정합니다. 그러나 데이터 전송을 설정 processData하면 false내 PHP 파일에서 인식되지 않습니다.

이 양식을 어떻게 파일과 문자열 모두를 잘 보내고 PHP로 읽을 수 있습니까?

ajax / jquery는 다음과 같습니다 .

$('#createcompany').click(function() {

            var formData = {

                'ownerid'                : $('#id').text(),
                'companyname'            : $('#companyname').val(),
                'logo'                   : $('#logo')[0].files[0],
                'investment'             : $('#investment').val(),
                'payment'                : $('#payment').val(),
                'companytype'            : $('#companytype').val(),
                'companyresource'        : $('#companyresource').val()
            };

            $.ajax({
                type        : 'POST',
                url         : 'processcreatecompany.php',
                data        : formData,
                dataType    : 'json',
                encode      : true
            }).done(function(data) {

                console.log(data); 

            }).fail(function(data) {

                console.log(data); 

        })
    });

그리고 내 PHP 데이터 수신자 라인 :

    $ownerid = filter_input(INPUT_POST, 'ownerid', FILTER_SANITIZE_STRING);
    $companyname = filter_input(INPUT_POST, 'companyname', FILTER_SANITIZE_STRING);
    $investment = filter_input(INPUT_POST, 'investment', FILTER_DEFAULT);
    $payment = filter_input(INPUT_POST, 'payment', FILTER_DEFAULT);
    $companytype = filter_input(INPUT_POST, 'companytype', FILTER_SANITIZE_STRING);
    $companyresource = filter_input(INPUT_POST, 'companyresource', FILTER_SANITIZE_STRING); 

파일 요청을 위해 다음을 사용합니다.

$_FILES['logo']

편집하다:

양식의 HTML 마크 업 (방금 호출 할 수 있도록 양식을 추가했기 때문에 약간 지저분 함) :

    <form id="formcompany">
        <div class="new-company-informations">
            <h1>BASIC INFORMATION</h1>
            <div id="company-name" class="company-info"><h1>Company name:</h1><input type="text" name="companyname" id="companyname" maxlength="50"></div>
            <div id="company-logo" class="company-info"><h1>Company logo:</h1><input type="file" name="logo" id="logo"></div>
            <div id="company-investment" class="company-info"><h1>First investment amount:</h1><input type="text" name="investment" id="investment"></div>
            <div id="company-payment" class="company-info"><h1>Basic wage per EP:</h1><input type="text" name="payment" id="payment" maxlength="20"></div>
        </div>

        <div class="new-company-separator"></div>

        <div class="new-company-area">
            <h1>AREA OF ECONOMY</h1>
            <div id="company-type" class="company-area">
                <h1>Company type:</h1>
                <select name="companytype" id="companytype">
                    <option value="" selected="selected">Choose company type</option>
                    <option value="1">Resource gathering (5.000 eDollars)</option>
                    <option value="2">Processing/manufacturing (15.000 eDollars)</option>
                    <option value="3">Production (30.000 eDollars)</option>
                    <option value="4">Labolatory (100.000 eDollars)</option>
                    <option value="5">Architecture development (500.000 eDollars)</option>
                    <option value="6">Innovations (1.000.000 eDollars)</option>
                </select>
            </div>
            <div id="company-resource" class="company-area">
                <h1>Resource:</h1>
                <select name="companyresource" id="companyresource">
                    <option value="" selected="selected">Choose resource</option>
                    <option value="1">Lumbermill (Wood)</option>
                    <option value="2">Quarry (Stone)</option>
                    <option value="3">Mine (Ore)</option>
                    <option value="4">Mine (Coal)</option>
                    <option value="5">Farm (Food)</option>
                    <option value="6">Farm (Leather and cloth)</option>
                </select>
            </div>

           <input type="hidden" value="<?=$_SESSION['user']['id']?>">
            <div id="company-button" class="company-area">
                <button id="createcompany">Create</button>
            </div>
        </div>
    </form>
로티 미

FormData를 사용하고 양식의 ID를 구문 분석하십시오. 이렇게하면 파일을 포함한 양식의 모든 내용이 물론 AJAX를 통해 서버 측 (PHP)으로 구문 분석됩니다.

 var formData = new FormData(this);

 $.ajax({
                    type        : 'POST',
                    url         : 'processcreatecompany.php',
                    data        : formData,
                    dataType    : 'json',
                   contentType: false,
                   processData: false,                        
                }).done(function(data) {

                    console.log(data); 

                }).fail(function(data) {

                    console.log(data); 

            })
        });

당신의 PHP에서 이것을하십시오,

var_dump('Posted fields are '.$_POST);
var_dump('Files are '. $__FILES);

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

잘못된 호출 오류 jquery

분류에서Dev

Expo : JS의 잘못된 호출 : 필드 크기가 다릅니다.

분류에서Dev

JS의 잘못된 호출 : 필드 크기가 다름 [[8,39], [4,0]

분류에서Dev

Expo React Native Calendar-오류 : HostFunction의 예외 : JS의 잘못된 호출 : 필드 크기가 다릅니다.

분류에서Dev

PHP Ajax 양식 보내기

분류에서Dev

JQuery AJAX에 PHP 수정 양식 제출

분류에서Dev

ajax + php + html 양식

분류에서Dev

ajax + php + html 양식

분류에서Dev

TypeError : 잘못된 호출 console.log

분류에서Dev

AJAX 양식 요소 처리

분류에서Dev

jquery ajax : 양식 값 추가

분류에서Dev

ajax 양식 경고 (jQuery)

분류에서Dev

AJAX PHP HTML 양식 질문

분류에서Dev

동적 PHP-ajax 양식

분류에서Dev

Jquery Ajax PHP를 사용하여 양식 제출

분류에서Dev

간단한 PHP 양식에 AJAX / jQuery 추가

분류에서Dev

ajax를 추가 할 때까지 PHP jQuery 양식 작동

분류에서Dev

Resharper-GetType ()에 대한 잘못된 호출 가능성

분류에서Dev

JS React Native Async Storage의 잘못된 호출

분류에서Dev

입력 setCustomValidity 및 TS를 사용하는 '잘못된 호출'

분류에서Dev

IE의 FancyBox에서 발생하는 '잘못된 호출 개체'

분류에서Dev

log = console.log, 잘못된 호출 오류 발생

분류에서Dev

IE 11 lockOrientation이 호출 될 때 잘못된 호출 개체

분류에서Dev

Javascript Uncaught TypeError : document.createElement 참조시 잘못된 호출

분류에서Dev

Post에서 이미지를 요청할 때 잘못된 호출

분류에서Dev

HTML5, Ajax 및 jQuery를 사용하여 양식 보내기

분류에서Dev

양식의 MVC JQuery Ajax 사용 중 표시기 오버레이

분류에서Dev

jQuery 및 ajax로 제출 한 후 양식 채우기

분류에서Dev

JQuery AJAX-첨부 파일과 함께 JSONP 양식 보내기

Related 관련 기사

  1. 1

    잘못된 호출 오류 jquery

  2. 2

    Expo : JS의 잘못된 호출 : 필드 크기가 다릅니다.

  3. 3

    JS의 잘못된 호출 : 필드 크기가 다름 [[8,39], [4,0]

  4. 4

    Expo React Native Calendar-오류 : HostFunction의 예외 : JS의 잘못된 호출 : 필드 크기가 다릅니다.

  5. 5

    PHP Ajax 양식 보내기

  6. 6

    JQuery AJAX에 PHP 수정 양식 제출

  7. 7

    ajax + php + html 양식

  8. 8

    ajax + php + html 양식

  9. 9

    TypeError : 잘못된 호출 console.log

  10. 10

    AJAX 양식 요소 처리

  11. 11

    jquery ajax : 양식 값 추가

  12. 12

    ajax 양식 경고 (jQuery)

  13. 13

    AJAX PHP HTML 양식 질문

  14. 14

    동적 PHP-ajax 양식

  15. 15

    Jquery Ajax PHP를 사용하여 양식 제출

  16. 16

    간단한 PHP 양식에 AJAX / jQuery 추가

  17. 17

    ajax를 추가 할 때까지 PHP jQuery 양식 작동

  18. 18

    Resharper-GetType ()에 대한 잘못된 호출 가능성

  19. 19

    JS React Native Async Storage의 잘못된 호출

  20. 20

    입력 setCustomValidity 및 TS를 사용하는 '잘못된 호출'

  21. 21

    IE의 FancyBox에서 발생하는 '잘못된 호출 개체'

  22. 22

    log = console.log, 잘못된 호출 오류 발생

  23. 23

    IE 11 lockOrientation이 호출 될 때 잘못된 호출 개체

  24. 24

    Javascript Uncaught TypeError : document.createElement 참조시 잘못된 호출

  25. 25

    Post에서 이미지를 요청할 때 잘못된 호출

  26. 26

    HTML5, Ajax 및 jQuery를 사용하여 양식 보내기

  27. 27

    양식의 MVC JQuery Ajax 사용 중 표시기 오버레이

  28. 28

    jQuery 및 ajax로 제출 한 후 양식 채우기

  29. 29

    JQuery AJAX-첨부 파일과 함께 JSONP 양식 보내기

뜨겁다태그

보관