Como posso reinicializar o Script para fazer o Script sem adicionar botão extra?
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);
}
});
}
}
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();