Como posso reinicializar o Script para fazer o Script sem adicionar botão extra?

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

  •  20-09-2019
  •  | 
  •  

Pergunta

Estou passando por você por um processo aqui:

Passo 1
1. Selecione Produto na lista suspensa
2. Um formulário é preenchido com dados
3. Um ID oculto obtém o ID do produto do item selecionado
4. O uploadsy é inicializado e recupera o ID do produto. Um uploadbutton é adicionado para formar.

Passo 2
1. Selecione novo produto na lista suspensa
2. O formulário é re-capotado com dados
3. O ID oculto obtém o novo ID do produto do item selecionado
4. O uploadsy é inicializado e recupera o ID do produto. Um novo uploadbutton é adicionado para formar.

Agora estou preso a dois botões. Não é exatamente o que eu quero.

Eu pude verificar se o botão é adicionado e, portanto, não reinicializar o botão, mas o script de upload não recuperará o novo ID do produto (que eu preciso para o Misc. Stuff).

Alguma idéia de como eu poderia resolver esse pequeno problema?

Esta é a minha função de uploads:

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);
            }
        });
    }    
}
Foi útil?

Solução

Se você só precisa mudar o productID Isso deve fazer isso de acordo com a documentação do plug -in

//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()}
    );
}

Outras dicas

Você já tentou remover o botão anterior antes de criar um novo?

if($('#brand_btnBrowseLogoQueue').length != 0)
    $('#brand_btnBrowseLogoQueue').remove();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top