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>

这是 var mediaID 获取其内容的地方。内部 .edit_photo_media mediaID 定义正确。

但是如果我点击上传按钮 mediaID 是未定义的。为什么变量失去了它的价值?

编辑:好的,这似乎与上传错误有关?如果我在任何其他功能上检查 mediaID,它工作正常......真的很奇怪

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 回答