2

私はこの Js/Ajax コードを持っています:

<script type="text/javascript">
$(document).ready(function(){
$("#message").hide();
$("#addsliderimage").submit(function(e){
    e.preventDefault();
    dataString=$("#addsliderimage").serialize();
    $.ajax({
        type: "POST",
        url: "addsliderimage_go.php",
        cache: false,
        data: dataString,
        success: function(res){
            //$("#message").show();
            $("#message").html(res);
            $('#message').fadeIn('slow');
            if(res.indexOf("success")!=-1)
            {
                window.location.href = res.substr(8);
            }
        }
    });
});
});
</script>

フォームが送信されると、フォームがオンになっているページはページを変更せず、ajax コードの URL にデータを送信するだけです。

私はこれが他のフォームで使用しているように機能することを知っていますが、この特定のフォームでは画像/ファイルをアップロードしているため、enctype を multipart/form-data に設定する方法が必要です

4

1 に答える 1

0

AJAX を使用してファイルをアップロードする場合は、よく知られている「ハック」を使用する必要があります。これは、AJAX によって送信されない単純なフォームを備えた単純な iframe であり、その iframe のロード イベントをキャッチして、アップロード。

あなたが疑問に思っている部分については、まあ、「presubmit」(何らかの方法で名前を付ける)関数が終了したときにデフォルトのイベントを防止するので、何も起こらない(デフォルトのイベントは送信後に「true」を返す)ので、 submit 関数に渡すクロージャの前に、サブミットする必要があることを伝える必要がありますが、2 回サブミットされているかどうかを処理する必要があります。

于 2013-07-29T16:41:48.710 に答える