フォームがファイルを送信しない/未定義のインデックス:FileInput-PHP / AJAX / jQuery

broderickga

jQueryを使用してフォーム送信をトリガーし、AJAXを使用してファイルを処理して応答を返すPHPスクリプトを呼び出そうとしています。ただし、問題は、フォームの送信時にファイルがアップロードされないことです。

HTML:

<div id="browseButton" class="step1Button" onclick="browseFile()">Browse</div>

<form method="post" id="fileForm" style="display:inline-block;">
    <input id="browseInput" type="file" name="FileInput" style="display: none"/>
    <label for="upload-click-handler"></label>
    <input id="upload-click-handler"  type="text" readonly />

    <input id="submitForm" type="submit" style="display: none"/>

</form>

<div id="previewButton" class="step1Button pull-right" onclick="uploadFile()" style="background-color: #57a957">
    Preview
</div>

jQuery:

function uploadFile() {
    submitForm();

    parseExcel();
}

var submitForm = function() {
    $('#previewButton').click(function(){
        $('#submitForm').click();
    });
};

var parseExcel = function() {

    var xmlhttp = new XMLHttpRequest();
    xmlhttp.open("GET",'default/ParseExcel',true);
    xmlhttp.send();


    console.log("made it past excel parse");

};

呼ばれるPHP:

public function actionParseExcel() {
    print "made it to parse".PHP_EOL;
    print "File:";

    if($_FILES['FileInput']['tmp_name']) {
        print_r($_FILES['FileInput']['tmp_name']);
    }

    else {
        print "Not found";
    }

    print "Done.";

}

問題は、フォームが選択したファイルを送信しないことです。これが通常、「未定義のインデックス」エラーがスローされる理由です。でもその理由がわかりません。

セバスチャンバリア

ファイルを含むフォームを送信するには、enctype = "multipart / form-data"を使用する必要があります。しかし、私が知る限り、ajaxを使用してファイルを送信することはできません。

したがって、その解決策は、非表示のiFrameを使用することです。

  1. 非表示のiFrame(フォームの外部)を作成し、IDを割り当てます
  2. yout PHPファイルを指すフォームを作成し、属性enctype = "multipart / form-data"およびtarget = "ID_OF_THE_IFRAME"を使用します(フォームが送信されると、そのiframeに送信されます)
  3. PHPがファイルの処理を終了すると、parent.YOURFUNCTION()を呼び出すJavaScriptを出力できるため、処理が完了したときに必要なことを実行できます。

がんばろう!

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

Jquery / Ajaxフォーム送信(enctype = "multipart / form-data")。'contentType:False'がPHPで未定義のインデックスを引き起こすのはなぜですか?

分類Dev

jQueryからPHPファイルにデータを送信するときの未定義のインデックス

分類Dev

AJAXとJqueryを使用してモーダルフォームのコンテンツをPHPファイルに送信する際の問題

分類Dev

PHPの未定義のインデックス(jqueryファイルのアップロードが原因)

分類Dev

ajaxメソッドを使用してjavascript変数をphpファイルにPOSTしようとしています:POSTですが、phpファイル内の$ POST配列で未定義のインデックスを取得しています

分類Dev

同じファイル内のPHPへのjQuery $ .ajax投稿が機能しない

分類Dev

jquery-ajax-InternetExplorerでphpファイルをロードしない

分類Dev

ajaxおよびphpファイルは入力から未定義のインデックスをアップロードします

分類Dev

jquery検証プラグインajaxを使用して既存の電子メールでフォームをデータベースに送信しない方法

分類Dev

jquery / ajax / phpでファイルを送信する

分類Dev

AJAXからphpファイルに送信されたときにフォームデータとjQuery変数を区別する方法は?

分類Dev

jquery / ajaxとphpを使用してjsonファイルにデータを送信します

分類Dev

フォーム(ajax、jquery、PHP)を使用してメールを送信する

分類Dev

AJAXがフォームデータをPHPに送信しない

分類Dev

PHPがajaxから送信されたファイルをJQueryで読み取らない

分類Dev

PHP Ajaxファイルのアップロード、常に未定義のインデックスエラーが発生する

分類Dev

Google reCaptcha v2トークンを含む画像ファイルをjQuery + Ajax経由でPHPに送信する

分類Dev

他のphpファイルのお問い合わせフォームからデータを送信するAjax

分類Dev

動的フィールドが空白の場合、フォーム送信を防止....Php / Jquery / Ajax

分類Dev

AJAX/jQuery/PHP - AJAX フォーム ハンドラー「不正な呼び出し」

分類Dev

Cordova jquery ajax がサーバー php ファイルに投稿

分類Dev

AJAX送信フォームとPHPファイルを含める

分類Dev

jQuery AJAXファイルアップロードPHP

分類Dev

PHP/JQuery/AJAX フォーム - インライン エラー スタイリングのみを使用したサーバー側の検証

分類Dev

jQuery Ajax を使用してフォームを送信し、フォーム データを ASP.Net の別の cs ファイルに実装する方法

分類Dev

Ajaxがphpファイルにパラメーターを送信しない

分類Dev

PHP、jQuery(AJAX)-情報の更新

分類Dev

Jquery検証プラグインを使用したAjaxフォーム送信が機能しない

分類Dev

単純なPHPフォームへのAJAX / jQueryの追加

Related 関連記事

  1. 1

    Jquery / Ajaxフォーム送信(enctype = "multipart / form-data")。'contentType:False'がPHPで未定義のインデックスを引き起こすのはなぜですか?

  2. 2

    jQueryからPHPファイルにデータを送信するときの未定義のインデックス

  3. 3

    AJAXとJqueryを使用してモーダルフォームのコンテンツをPHPファイルに送信する際の問題

  4. 4

    PHPの未定義のインデックス(jqueryファイルのアップロードが原因)

  5. 5

    ajaxメソッドを使用してjavascript変数をphpファイルにPOSTしようとしています:POSTですが、phpファイル内の$ POST配列で未定義のインデックスを取得しています

  6. 6

    同じファイル内のPHPへのjQuery $ .ajax投稿が機能しない

  7. 7

    jquery-ajax-InternetExplorerでphpファイルをロードしない

  8. 8

    ajaxおよびphpファイルは入力から未定義のインデックスをアップロードします

  9. 9

    jquery検証プラグインajaxを使用して既存の電子メールでフォームをデータベースに送信しない方法

  10. 10

    jquery / ajax / phpでファイルを送信する

  11. 11

    AJAXからphpファイルに送信されたときにフォームデータとjQuery変数を区別する方法は?

  12. 12

    jquery / ajaxとphpを使用してjsonファイルにデータを送信します

  13. 13

    フォーム(ajax、jquery、PHP)を使用してメールを送信する

  14. 14

    AJAXがフォームデータをPHPに送信しない

  15. 15

    PHPがajaxから送信されたファイルをJQueryで読み取らない

  16. 16

    PHP Ajaxファイルのアップロード、常に未定義のインデックスエラーが発生する

  17. 17

    Google reCaptcha v2トークンを含む画像ファイルをjQuery + Ajax経由でPHPに送信する

  18. 18

    他のphpファイルのお問い合わせフォームからデータを送信するAjax

  19. 19

    動的フィールドが空白の場合、フォーム送信を防止....Php / Jquery / Ajax

  20. 20

    AJAX/jQuery/PHP - AJAX フォーム ハンドラー「不正な呼び出し」

  21. 21

    Cordova jquery ajax がサーバー php ファイルに投稿

  22. 22

    AJAX送信フォームとPHPファイルを含める

  23. 23

    jQuery AJAXファイルアップロードPHP

  24. 24

    PHP/JQuery/AJAX フォーム - インライン エラー スタイリングのみを使用したサーバー側の検証

  25. 25

    jQuery Ajax を使用してフォームを送信し、フォーム データを ASP.Net の別の cs ファイルに実装する方法

  26. 26

    Ajaxがphpファイルにパラメーターを送信しない

  27. 27

    PHP、jQuery(AJAX)-情報の更新

  28. 28

    Jquery検証プラグインを使用したAjaxフォーム送信が機能しない

  29. 29

    単純なPHPフォームへのAJAX / jQueryの追加

ホットタグ

アーカイブ