Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Olá a todos.
Tenho uma dúvida. Estou montando uma parte de atualização de um form e nele há uma parte para alteração de imagem (upload). Quando o administrador faz uma consulta no bd, os campos dessa consulta são retornados e imprimidos na tela. Ao escolher a opção de alterar algum segmento, um campo (no meu caso de upload - "file") aparece no lugar da imagem que é exibida após a consulta.
até aí, tudo certo. O administrador escolhe a imagem e clica no boltão de "alterar". Esse botão, tem carrega uma função que tem alguns parâmetros, dentre elas, informar o campo de upload para que o programa faça a alteração. O problema é que o script não lê o campo que foi criado dinâmicamente. Como devo corrigir isso?
Script para gerar o campo de input e o botão com a função que passa para o ajax os parâmetros para a atualização
function adicionaImgPrincipal(nomediv, id)
{
var divObj = document.getElementById(nomediv);
inputFile = '<input type="file" [b]name="imgPrincipal"[/b] />' + ' <a href="java script:atualizarImgPrincipal(\''+id+'\', \''+nomediv+'\', \'atualizar\', \'imgprincipal\', \''+[b]nomedocampodouploadquefoicriadodinamicamenteacima[/b]+'\');"><img src="images/refresh.png" alt="alterar imagem" width="19" height="19" align="absmiddle" title="alterar imagem" border="0"/></a>';
divObj.innerHTML = " ";
divObj.innerHTML = inputFile;
}
</script>
Script da função ajax que recebe os parâmetros passados pelo botão criado dinâmicamente.
function atualizarImgPrincipal(id, divnome, acao, origem, upload){
var url = "modificaproduto.php?id="+id+'&acao='+acao+'&origem='+origem+'&upload='+upload;
alert(url);
var divObj = document.getElementById(divnome);
var action = 'Excluindo item, aguarde...';
divObj.innerHTML = '<table border="0"><tr><td><img src="images/imgLoading.gif" alt="carregando" width="16" height="16"></td><td align="left" valign="middle" class="textoCarregando">'+action+'</td></tr></table>';
page=GetXmlHttpObject()
if (page==null){
alert ("Browser does not support HTTP Request")
return
}
page.onreadystatechange = function stateChanged(){
if (page.readyState==4 || page.readyState=="complete"){
if(page.status == 200){
divObj.innerHTML = page.responseText;
executaAllScript(page.responseText);
closeDivCenter();
}else{
divObj.innerHTML = page.statusText;
}
}
};
page.open("GET",url,true);
page.send(null);
}
esse é o que aparece quando depuro variável url do código acima
atualizarImgPrincipal('11', 'imgprincipal', 'atualizar', 'imgprincipal', '[object HTMLDivElement]')
O final em negrito deveria ser o valor da variável do campo de upload.
Alguem tem idéia de como se resolve isso?
Obrigado a quem puder me dar uma ajudinha.
Carregando comentários...