0

次のフォームをアップロードしようとしています

<form id="filesend" enctype="multipart/form-data" method="post" action="upload.php"> Choose the file you want to send <br> <input name="file" type="file"><br><input type="submit"></form>

次のjqueryコードを使用する

<script>
$('document').ready(function() { 
var options= { target:'#close'}
$('#filesend').submit( function (){
$(this).ajaxSubmit(options);
          return false;         
})})
</script>

しかし、何も起こらず、フォームは通常のhtmlフォームのように送信され、upload.phpに移動します。はい、プラグインを含めました。私がどこで間違っているのかについてのアイデア。

編集

何か面白いことに気づきました。Chromeのデバッガーを調べて、実行のすべてのステップを監視すると、ファイルがデータベースに2回アップロードされます。ただし、ブレークポイントなしで通過すると、アップロードされるのは1回だけになります。

4

4 に答える 4

1

問題はこの部分にあります:

$(#filesend).submit( function (){
    $(this).ajaxSubmit(options);
    return false;         
})

セレクターは文字列でなければなりません: $('#filesend')- 一重引用符に注意してください (二重引用符も使用できます)。

それらがなければ、名前付き変数の値を関数に渡そうとして#filesendいます。それが有効な変数名かどうかわからないので、おそらくエラーがスローされるでしょう。ブラウザーの開発者ツール コンソールを確認すると、それが原因でエラーがスローされたかどうかがわかります。

于 2013-02-05T11:11:42.123 に答える
1

ajax 経由でファイルをアップロードすることはできません。IFrame を使用すると、ページを更新せずにファイルをアップロードできます。ここで詳細を確認できます:

http://www.ajaxf1.com/tutorial/ajax-file-upload-tutorial.html

XHR2 では、AJAX によるファイルのアップロードがサポートされています。たとえば FormData オブジェクトを使用しますが、残念ながら、すべての/古いブラウザーではサポートされていません。

于 2013-02-05T11:12:14.293 に答える
0

Ajax を使用してファイルを送信することはできないと思います。JQuery ベースのファイル アップロード プラグインを使用すると、ファイル アップロード入力ボックスを「適切に」表示できます。

于 2013-02-05T11:12:59.943 に答える
0

あなたのコードにはsyantaxの問題があります

ここをよく見て

$('#filesend').submit( function (){
$(this).ajaxSubmit(options);
          return false;         
})});

セレクターは ins string ie をワインドアップする必要があります'#filesend'

于 2013-02-05T11:13:54.860 に答える