0

page_idループにandを追加してpage_slug、画像がアップロードされたときに詳細ページ ID とスラッグが移動するようにしようとしています。

通常、私はこれを使用します:data: { page_id: page_id, page_slug: page_slug } しかし、formDataはそこにあります..

(function () {
var input = document.getElementById("images"), 
    formdata = false;
var page_id = $('#page_id').val();
var page_slug = $('#page_slug').val();


function showUploadedItem (source) {
    var list = document.getElementById("image-list"),
        li   = document.createElement("li"),
        img  = document.createElement("img");
    img.src = source;
    li.appendChild(img);
    list.appendChild(li);
}   

if (window.FormData) {
    formdata = new FormData();
    document.getElementById("btn").style.display = "none";
}

input.addEventListener("change", function (evt) {
    document.getElementById("response").innerHTML = "Uploading . . ."
    var i = 0, len = this.files.length, img, reader, file;

    for ( ; i < len; i++ ) {
        file = this.files[i];

        if (!!file.type.match(/image.*/)) {
            if ( window.FileReader ) {
                reader = new FileReader();
                reader.onloadend = function (e) { 
                    showUploadedItem(e.target.result, file.fileName);
                };
                reader.readAsDataURL(file);
            }
            if (formdata) {
                formdata.append("images[]", file);
            }
        }   
    }

    if (formdata) {
        $.ajax({
            url: "admin/pages/upload/",
            type: "POST",
            data: formdata,
            processData: false,
            contentType: false,
            success: function (res) {
                document.getElementById("response").innerHTML = res; 
            }
        });
    }
}, false);
}());
4

1 に答える 1

2

$.ajaxFormData オブジェクトを関数内または関数内で直接操作できるとは思わない$.ajaxSetupため、次のコード ブロックに追加する 2 つの呼び出しを追加するには、必要なパラメーターを含める必要があります。

if (window.FormData) {
  formdata = new FormData();
  formdata.append('page_id', page_id);
  formdata.append('page_slug', page_slug);
  document.getElementById("btn").style.display = "none";
}

page_idとのpage_slug値は に固有であるため、ループに追加する必要はありません。FormData オブジェクトの作成後に 1 回だけ。

その他の例については、 FormData オブジェクトの使用も参照してください。

于 2012-07-17T13:48:49.997 に答える