Javascript 中用于上传表单数据的变量未定义

Variable in Javascript for uploadify form data is undefined

本文关键字:数据 变量 未定义 表单 用于 Javascript      更新时间:2023-09-26

嗨,我需要在Javascript中保存一个变量并上传。

这是我的代码:

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媒体ID的定义是正确的。

但是如果我单击上传按钮 媒体ID 是未定义的。为什么变量会失去其值?

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

好的问题解决了。刚刚添加了"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});
    }
}); 

jQuery从1.6版本开始才开始将HTML5数据属性包含在源代码中。如果您使用的是 <1.6,则不会发生这种情况,在这种情况下,请升级 jQ。