0

AJAX ファイル アップローダにJQuery Form Pluginを使用しています。

(html) フォームは動的に作成され、次のようになります。

<form id="formUpload" action="fileReceiver.php" method="post" enctype="multipart/form-data">
    <input type="file" name="fileUpload" multiple>
    <input type="submit" value="Upload File to Server">
</form>

フォームは動的に作成されるため、jquery on() を使用しています。また、いくつかの変数を送信する必要があります。プラグインのデータ オプションを使用しています。

Javascript は次のようになります。

$(document).on("submit", "form#formUpload", function() {
    $(this).ajaxForm({
        data: { someVariable : 'someValue' },
        complete: function(xhr) {
            status.html(xhr.responseText);
        }
    }); 
});

フォームが正しくバインドされていると思います。 beforeSend または Success オプションを使用して ajaxForm (jquery フォーム プラグイン) 関数から何かを呼び出す/警告することができます。

さて、問題は、Javascript に投稿したデータを PHP が取得できなかったことです。

私のPHPは次のよ​​うに単純です:

<?php
   echo $_POST["someVariable"];
?>

「 Notice: Undefined index : someVariable blah blah blah」というエラーが表示されます

何かアドバイス?どうも :)

4

3 に答える 3

0

フォームが動的に追加される場合は、DOMNodeInsertedの代わりに eventを使用する必要がありsubmitます。そうすれば、DOM に何らかの追加があるときはいつでも、フォームがフォーム プラグインにアタッチされます。

関数を次のものに置き換えることができます-

    $(document).on("DOMNodeInserted", "form#formUpload", function() {
        $(this).ajaxForm({
            data: { someVariable : 'someValue' },
            complete: function(xhr) {
                // do something 
            }
        });
    });

ただし、DOMNodeInsertedイベントを使用すると、DOM に何らかの追加が行われるたびにそのメソッドが起動されることに注意してください。ですから、必要なものを入れてください (この場合は form plugin init for #formUpload)。

于 2013-03-19T15:37:26.893 に答える
0

jQuery Form Plugin をすでに追加しているかどうかを確認してください...

<script src="jquery.form.js"></script>

http://malsup.com/jquery/form/#options-objectによると、構文は間違いなく正しいです

于 2013-05-14T12:40:07.883 に答える
0

フォーム内の隠し入力にいくつかの変数を追加してみてください

<input type="hidden" name="someVariable" value="someValue">

$(document).on("submit",... イベントを削除します

あなたが試すことができます

var input = $("<input>").attr("type", "hidden").attr("name", "someVariable").val("someValue");
$('#formUpload').append($(input));

このリンクはあなたを助けるかもしれません

http://www.malsup.com/jquery/form/progress2.html

http://www.malsup.com/jquery/form/file-echo2.php.txt

于 2013-03-19T12:17:35.700 に答える