1

こんにちは私はJavascriptで変数を保存し、uploadifyにそれを与える必要があります。

これは私のコードです:

var mediaID;

$(".edit_photo_media").live("click", function() {
    mediaID = $(this).data("media-id");
    $.ajax({
        url: 'edit.php?action=media_select',
        type: 'GET',
        dataType: 'html',
        success: function (select) {
            if (select == '3') {
                document.location = "login.php";
            } else {
                $("#dialog_upload_media").dialog("open");
            }
        }
    });
    return false;
});

$('#file_upload').uploadify({
    'fileTypeDesc' : 'Image Files',
    'fileTypeExts' : '*.jpg;',
    'fileSizeLimit' : '4096KB',
    'debug'    : true,
    'method'   : 'post',
    'formData'      : {'id' : '' + mediaID},
    'swf'      : 'include/swf/uploadify.swf',
    'uploader' : 'include/scripts/upload_mult.php'
}); 

したがって、アップローダーが開かれる前に、.edit_photo_mediaがクリックされるたびに。

<a href="#" data-media-id="'.$getID[$i].'" data-table="Media" class="edit_photo_media" title="Foto hochladen"><img src="images/photo.png" /></a>

これは、varmediaIDがそのコンテンツを取得している場所です。.edit_photo_mediamediaID内で正しく定義されています。

しかし、アップロードボタンをクリックすると、mediaIDは未定義になります。変数がその値を失うのはなぜですか?

編集:わかりました、これはuploadifyのバグに関連しているようですか?他の関数でmediaIDを確認すると、正常に機能しています...rlly奇妙な

4

2 に答える 2

4

問題は解決しました。'onUploadStart'を追加し、そこにIDを保存しました

$('#file_upload').uploadify({
    'fileTypeDesc' : 'Image Files',
    'fileTypeExts' : '*.jpg;',
    'fileSizeLimit' : '4096KB',
    'buttonText'    : 'Bilder auswählen',
    'debug'    : true,
    'method'   : 'post',
    'formData' : {'id' : 0},
    'swf'      : 'include/swf/uploadify.swf',
    'uploader' : 'include/scripts/upload_mult.php',
    'onUploadStart' : function(file) {
        $('#file_upload').uploadify("settings", "formData", {"id": mediaID});
    }
}); 
于 2012-06-17T14:47:41.793 に答える
0

jQueryは、バージョン1.6以降のソースコードで設定されたHTML5データプロパティの包含のみを開始しました。<1.6を使用している場合、これは発生しません。その場合は、jQをアップグレードしてください。

于 2012-06-16T20:12:43.570 に答える