2012-06-16 25 views
1

嗨我需要在Javascript中保存一個變量並將其賦予uploadify。用於uploadify表單數據的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 mediaID被定義爲正確。

但如果我點擊上傳按鈕mediaID是不確定的。爲什麼變量會失去它的價值?

編輯:好吧,這似乎與uploadify錯誤有關?如果我檢查mediaID其他任何功能它工作正常... rlly奇怪

+0

您可以試試$(this).attr(「data-media-id」);而不是$(this).data() – ppsreejith

+0

Im使用'$(this).attr(「data-media-id」);' – JPM

回答

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}); 
    } 
}); 
0

的jQuery纔開始從歸入1.6版本起在源代碼中設置HTML5數據屬性。如果您使用的是< 1.6,則不會發生這種情況,在這種情況下升級jQ。

+0

Im使用jQuery 1.7.1獲得相同的未定義結果 – JPM