submit - tenho que abrir em uma pagina nova e forcar o
Ola pessoal
antes de mais nada vou explicar como funcinam meus sistemas.
tenho uma tela de cadastro comum, com campos, e qdo tenho que fazer um cadastro, chamo uma pagina nova que gera um XML
e uso essa funcao para carregar os dados do XML
this.carregarDococumentoXml = function(xmlOrigem){
if(window.ActiveXObject){ // verifica qual browser o usuario esta usando
documentoXml = new ActiveXObject("Microsoft.XMLDOM"); // Internet Explorer
} else {
documentoXml = document.implementation.createDocument("","",null); // Mozilla, Safari...
}
documentoXml.async = false;
documentoXml.load(xmlOrigem); // carrega o XML enviada como parametro
return(documentoXml); // retorna o documento XML carregado
}
e uma outra funcao pra distribuir os dados no formulario caso ocorra erro e se nao tiver erro, mostrar o ID do cadastro
**essa funcao ´grande pra caramba e meia complexa, entao vou colocar essa outra funcoa bem mais simples, e que praticamente funciona da mesma forma
this.carregarConteudoCidade = function(pagina,ResultID){
LimpaLst(ResultID);
documentoXml = carregarDococumentoXml(pagina);
elementoXml = documentoXml.getElementsByTagName("cidade");
//verifico se existe algum retorno
if(elementoXml.length>0){
//insiro um option em branco para nao forçar o usuário
selectMenuOptionAdd(ResultID, "0","");
var optionNome;
var optionId;
for (i=0;i<elementoXml.length;i++){ // faz um loop contando a quantidade de elementos tag texto dentro do arquivo XML
optionNome = documentoXml.getElementsByTagName("cidadeNome")[i].childNodes[0].nodeValue;
optionId = documentoXml.getElementsByTagName("cidadeID")[i].childNodes[0].nodeValue;
selectMenuOptionAdd(ResultID, optionId,optionNome);
}
}
}
mas a ideia é a mesma
chamar a funcao "carregarConteudoCidade" que chama uma pagina que gera um XML e a partir desse XML os dados sao passados para a pagina que o chamou.
minha vida ia feliz ate ai, porem ,tenho um belo problema agora
a pagina que eu mando como parametro os dados vao via GET(queryString), os dados vao todos na URL, so que agora, eu tenho um campo com dados em HTML e com muitos dados(podem passar de 1000 caracteres), e esse dados com esse tamanho na URL nao vao dar certo.
o meio de corrigir isso é realmente fazer o SUBMIT do form via POST
porem ,o problema é, qdo ocorrer um erro que é informado pelo banco de dados(cadastro ja existente por exemplo), vou ter que pegar todos os dados, e retornar com eles pro Formulario e isso é uma perreio pra fazer.
tentei fazer oq entao
fiz o form com o submit via POST abrindo numa pagina nova
<form name="Form" id="Form" method="post" action="insert.asp" target="_blank">essa pagina faz oq tem que fazer e retorna os dados via JS pro formulario original
window.opener.document.getElementById('exemplo').value = 'teste OK';ate aqui, tudo maravilha, consegui, porem, o meu problema é fechar a paginafiz o comando
self.close();porem, ele pergunta pro usuario se quer fechar a pagina ou naosei que isso ocorre pq nao fiz primeiro o
window.open()
as duvidas sao
1-queria saber se existe um meio de eu fechar a pagina sem perguntar ao usuario?
2-ideias novas sao bem vindas
3-via AJAX, é possivel eu fazer ele ler os dados via POST no form, sem eu ter que mandar eles via GET e mandar a URL limpa?
eu uso ASP classico pra programar.
acho que é so por enqto
abs
T+ pessoal
Discussão (2)
Carregando comentários...