Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Mr Crowley

submit - tenho que abrir em uma pagina nova e forcar o

Recommended Posts

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 pagina

fiz o comando

self.close();
porem, ele pergunta pro usuario se quer fechar a pagina ou nao

sei 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

Compartilhar este post


Link para o post
Compartilhar em outros sites

Um truque antigo, que não sei se funciona mais, seria você usar este tipo de construção:

 

window.opener=null;window.close();

Compartilhar este post


Link para o post
Compartilhar em outros sites

entendi mais nao compreendi!

eu coloco isso aonda?

 

eu tentei na pagina que eu chamo

<script language="javascript">
window.opener=null;

self.close();
</script>

porem, nao deu certo!

 

e tentei assim também

 

...
	<form name="Form1" id="Form1" method="post" action="teste_form.asp" target="_blank" onsubmit="return teste4();">
....
function teste4(){
	window.opener=null;
	return true;
}
...

e na pagina que abre

....
self.close();
....
ele pergunda da mesma forma

 

era isso o que voce tinha me dito pra fazer klaygomes

 

abs e obrigado

T+

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.