Как я могу повторно инициализировать скрипт Uploadify без добавления дополнительной кнопки? - PullRequest
0 голосов
/ 18 декабря 2009

Я провожу вас через процесс здесь:

Шаг 1
1. Выберите продукт из выпадающего списка
2. Форма заполняется данными
3. Скрытый идентификатор - это идентификатор товара из выбранного товара
4. Uploadify инициализируется и получает идентификатор продукта. Кнопка загрузки добавлена ​​в форму.

Шаг 2
1. Выберите новый продукт из выпадающего списка
2. Форма заполняется данными
3. Скрытый идентификатор - это новый идентификатор продукта из выбранного элемента
4. Uploadify инициализируется и получает идентификатор продукта. Новая кнопка загрузки добавлена ​​в форму.

Теперь я застрял с двумя кнопками. Не совсем то, что я хочу.

Я мог бы проверить, добавлена ​​ли кнопка, и, следовательно, не повторно инициализировать кнопку, но тогда скрипт 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 ]

1 голос
/ 18 декабря 2009

Если вам просто нужно изменить 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()}
    );
}
0 голосов
/ 18 декабря 2009

Вы пытались удалить предыдущую кнопку перед созданием новой?

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