0

これはすでに多くの皆さんと何百もの投稿でカバーされていることを私は知っていますが、私が抱えているような問題を抱えている人は誰もいませんでした。

ファイルをアップロードするためにAjaxFormを実装しようとしています。私はすべてのチュートリアル、ドキュメント、例...すべてを読みました。

HTML:

<form action="scripts/upload_script.php" method='post' id="upload_picture_form" enctype="multipart/form-data">
    File: <input type="file" name="upload" id="upload" /></p>
    <p><input type="submit" name='submit' value="Submit" /></p>
</form>

Jquery:

$('#upload_picture_form').ajaxForm({
  success: function(){
    alert('success');
  },
  error: function(){
    alert('error');
  },
  resetForm:true
}); 

フォームを送信すると、ajaxFormが呼び出され、fireBugでphpファイルが呼び出され、数秒後に応答が「200 OK」になり、によって送信されたHTMLで応答を確認できます。 php。

問題は、応答後に「成功」​​または「エラー」がトリガーされず、フォームがリセットされないことです...コールバックがないように見えます。

誰かが私が間違っていることを教えてもらえますか?PHPからの「エコー」は特定の形式である必要がありますか?単純な「File:image.jpg(7487bytes)」をjQueryに送り返します。

よろしく。

4

1 に答える 1

0

ajaxFromコールバック イベントも返す小さな例を次に示します。

<form id="imageform" enctype="multipart/form-data" action="get_img.php" method="post">
 <tr>
   <td valign="top"><label>Select File</label> :</td>
   <td><input type="file" name="myfile" id="myfile" /> <br />
   <em>.jpeg, .jpg, .gif, .png, .bmp</em>
   </td>
 </tr>
</form>

<div id="result"></div>

jquery を使用するようになりました:

$(function(){
$('#myfile').live({
    change: function(){
            $('#result').ajaxStart(function(){
                $(this).html('<div class="loader" />');
            });

            $('#imageform').ajaxForm({
                                 target: '#result', 
                                 success: function(){ // Call Back Function } 
                            }).submit();
        }
});
});

クリック イベントなしで画像を送信するために here を実装する目的とajaxFrom、上記の jquery コードでは、イベントを on に添付しましたChange。フォームは自動的に送信され、動作中の を呼び出しますget_img.php

ファイルをtarget介して返されたものを取得し、必要なコールバック、メソッドを設定 します。get_img.php
success

于 2012-10-10T08:40:16.110 に答える