如何在不添加额外按钮的情况下重新初始化Uploadify脚本?

时间:2009-12-17 23:04:09

标签: php jquery uploadify

我带你走过这里的流程:

第1步
1.从下拉列表中选择产品
2.表格填充数据
3.隐藏ID获取所选项目的产品ID
4.初始化Uploadify并检索产品ID。将添加一个上传按钮以形成。

第2步
1.从下拉列表中选择新产品
2.表格重新填充数据
3.隐藏ID获取所选项目的新产品ID 4.初始化Uploadify并检索产品ID。将添加一个新的上传按钮以形成。

现在我被两个按钮困住了。不完全是我想要的。

我可以检查是否添加了按钮,因此没有重新初始化按钮,但是上传脚本将不会检索新的产品ID(我需要用于misc。的东西)。

我有什么想法可以解决这个小问题吗?

这是我的uploadify功能:

function initUploadify()
{ 
    // If button is already added, do not add it again.
    // But this will not retrieve new productID.
    if( jQuery('#brand_btnBrowseLogoQueue').length < 1)
    {
        jQuery('#txtBoxFileName').css({'position':'relative', 'top':'-9px'});
        jQuery("#brand_btnBrowseLogo").uploadify({
            'uploader'       : 'wp-content/plugins/uploadify/uploadify.swf',
            'script'         : 'wp-content/plugins/uploadify/uploadify.php',
            'folder'         : 'brand',
            'fileExt'        : '*.jpg;*.jpeg;*.png',
            'auto'           : true,
            'multi'          : false,
            'method'         : 'POST',
            'height'         : '30',
            'width'          : '100',
            'buttonImg'      : 'path/to/img/btn_browse_101x30px.png',
            'scriptData'     : {'productID':jQuery("#productID").val()},
            onComplete       : function(event, queueID, fileObj, response, data) { 
                //This makes the json response readable                
                data = eval("(" + response + ")");
                //Update logo image
                setLogo(jQuery("#brandID").val(),data.fileName);
            }
        });
    }    
}

2 个答案:

答案 0 :(得分:1)

如果您只需要更改productID,则应根据插件文档

进行更改
//initialize uploadify when first product is selected
if( jQuery('#brand_btnBrowseLogoQueue').length < 1) {
   ...
} else {
    //uploadify already initialized just change the productId
    $("#brand_btnBrowseLogo").uploadifySettings(
        'scriptData',
        {'productID': jQuery("#productID").val()}
    );
}

答案 1 :(得分:0)

您是否尝试在创建新按钮之前删除上一个按钮?

if($('#brand_btnBrowseLogoQueue').length != 0)
    $('#brand_btnBrowseLogoQueue').remove();