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

StackOverflow https://stackoverflow.com/questions/1925209

  •  20-09-2019
  •  | 
  •  

Вопрос

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

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

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

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

Я мог бы проверить, добавлена ли кнопка, и, таким образом, не инициализировать кнопку повторно, но тогда скрипт Uploadify не получит новый идентификатор продукта (который мне нужен для 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);
            }
        });
    }    
}
Это было полезно?

Решение

Если вам просто нужно изменить 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()}
    );
}

Другие советы

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

if($('#brand_btnBrowseLogoQueue').length != 0)
    $('#brand_btnBrowseLogoQueue').remove();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top