用于uploadify表单数据的Javascript变量未定义

时间:2012-06-16 19:31:47

标签: javascript uploadify

您好我需要在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未定义。为什么变量失去了它的价值?

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

2 个答案:

答案 0 :(得分: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});
    }
}); 

答案 1 :(得分:0)

jQuery仅开始包含从1.6版开始在源代码中设置的HTML5数据属性。如果你正在使用&lt; 1.6,这不会发生,在这种情况下升级jQ。