Ir para conteúdo

POWERED BY:

Arquivado

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

Mr Crowley

ajax pegando os valores via REQUEST.FORM é possivel

Recommended Posts

ola pessoal

 

Faco validacoes em com AJAX e ASP via REQUEST.QUERYSTRING(""), porem queria saber se é possivel fazer via REQUEST.FORM("")

 

existe essa possivilidade?

 

um exemplo do que eu to fazendo

 

chamando a função

AjaxValida('../include/funcao_ValidaObrigatorioTXT.asp?FCValor='+document.form.ConsorNome.value+'&FCCampo=NOME DO CONSORCIO&FCN=3','POST',false,'ConsorNome','Erro','Cadastrar');

funcao que ajax

function AjaxValida(URL, Metodo, Modo,Campo,ErroID,Botao){	Remoto  = new ajax();	xmlhttp = Remoto.enviar(URL, Metodo, Modo);	var resultado = xmlhttp.split("||");	if(resultado[0]=='false') {		document.getElementById(Campo).className = 'FORMULARIO_Campo_Erro';//Muda o estilo do campo para melhor visualizacao do erro		document.getElementById(ErroID).innerHTML 	= document.getElementById(ErroID).innerHTML + '<br>' + resultado[1];		return false;	} else {		document.getElementById(Campo).className 	= 'FORMULARIO_Campo';		document.getElementById(Campo).value = xmlhttp;		return true;	}}

funcao do ASP

<%@LANGUAGE="VBSCRIPT"%><%OPTION EXPLICIT%><%Function AjaxValidaObrigTXT()	Dim FCValor,FCErro,FCCampo,FCN	FCValor 	= REQUEST.QUERYSTRING("FCValor")	FCCampo 	= REQUEST.QUERYSTRING("FCCampo")	FCN 		= REQUEST.QUERYSTRING("FCN")	 	If LEN(FCValor) < Cint(FCN) Then FCErro = "O campo <b>" & FCCampo & "</b> nao aceita palavras com menos de " & FCN & " caracteres " & vbnewline		IF FCErro <> Empty THEN		AjaxValidaObrigTXT = "false||" & FCErro & "||" & FCValor	ELSE		AjaxValidaObrigTXT = FCValor	END IFEnd Functionresponse.Write(AjaxValidaObrigTXT())%>

 

falow t+

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mr Crowley,Eu em todos os testes que eu fiz com ASP+Ajax, eu pego o valor vindo da página usando Request("nome_do_input")

Compartilhar este post


Link para o post
Compartilhar em outros sites

Mr Crowley,Eu em todos os testes que eu fiz com ASP+Ajax, eu pego o valor vindo da página usando Request("nome_do_input")

mais nesse caso é FORM ou QUERYSTRING??você poderia postar um exemplo pra eu dar uma olhada no codigo?falow e obrigado

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não especifico nada, fica desse jeito mesmo

 

no meu teste, é só pego as informações e jogo na tela, então eu uso assim:

 

<%= Request("nome_do_input") %>

você pode usar assim tb que não vai funcionar

 

<%dim valorvalor = Request("nome_do_input")%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Eu não especifico nada, fica desse jeito mesmono meu teste, é só pego as informações e jogo na tela, então eu uso assim:

<%= Request("nome_do_input") %>
você pode usar assim tb que não vai funcionar
<%dim valorvalor = Request("nome_do_input")%>
mais nesse caso você tem que dar o SUBMITe eu nao tenho isso nesses codigosesse que é o problema....falow e valeu

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendí sua dúvida,No seu código ASP você usa REQUEST.QUERYSTRING("FCValor") para pegar os dados enviados pelo form, certo??Você pode utilizar REQUEST("FCValor") para pegar esse valor, o ASP assim pega tanto informação mandada por Get quanto por Post

Compartilhar este post


Link para o post
Compartilhar em outros sites

Não entendí sua dúvida,No seu código ASP você usa REQUEST.QUERYSTRING("FCValor") para pegar os dados enviados pelo form, certo??Você pode utilizar REQUEST("FCValor") para pegar esse valor, o ASP assim pega tanto informação mandada por Get quanto por Post

vou tentar explicar melhor, mais portugues nunca foi meu forte..rsexemplotenho uma pagina DADO.asp com o campo "nome" e quero fazer inserir o informacao no banco dadospara pegar essa valor em outra pagina BANCO.asp eu preciso fazer o SUBMIT ai sim funciona o REQUEST.FORMmais caso eu nao use o SUBMIT e pega esse valor por uma funcao em JAVA SCRIPT, quando eu chamo o valor da pagina DADO.asp o REQUEST.FORM nao funciona, eu tenho que passar a informao via URL, por isso do REQUEST.QUERYSTRING.eu queria saber se tem alguma forma de fazer ele pegar esse valor por JAVA SCRIP usando o REQUEST.FORM. se tem alguma funcao em JAVA SCRIPT que funciona com o SUBMIT da pagina...em resumo é isso...falow carat+

Compartilhar este post


Link para o post
Compartilhar em outros sites

O problema dele Pita nem é com o asp. De asp ele entende.O problema é passar o formulário através do método POST ao invés do método GET.Acertei amigo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como está sua tag <FORM>??Nela você está colocando method=post ??Pq no meu codigo de ajax, se não for definido metodo de envio, ele usa GET por padrãoQuanto a ter que clicar no submit para enviar, o codigo ajax simula o envio dessa forma e para a página chamada é transparente

Compartilhar este post


Link para o post
Compartilhar em outros sites

A PÁGINA ASP QUE VAI ENVIAR A SOLICITAÇÃO

<script language="javascript" type="text/javascript">

function "enviaSolicitacao(){
	var form = document.getElementById("form");
	cadServico("./sistemas/sac/ajax/listUnidConsumidoraAjax.asp","POST","true","grid",form); // AJAX
}

</script>

<h1>TESTE DE SOLICITAÇÃO VIA POST</h1>

<form id="form" name="form">
<table>
	<tr>
		<td width="15%">
			Matricula
		</td>
		<td width="85%">
			<input type="text" name="txtMatricula" id="txtMatricula" maxlength="10" />
		</td>
	</tr>
	<tr>
		<td width="15%">
			Nome
		</td> 
		<td width="85%">
			<input type="text" name="txtNome" id="txtNome" maxlength="150" size="50" />
		</td>
   
</table>

<table>
	<tr>
		<td align="center">
			<input type="button" name="pesquisar" value="Pesquisar" onclick="enviaSolicitacao();" />
		</td>
	</tr>
</table>

</form>
<div id='grid'></div>

imagine o seguinte ajax:

function cadServico(url, metodo, modo, tagRetorno, objForm) {
	if (window.XMLHttpRequest) { 
			xmlhttp = new XMLHttpRequest();
			if (xmlhttp.overrideMimeType) {
				xmlhttp.overrideMimeType('text/xml');
			}
		} else if (window.ActiveXObject) { 
			try {
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try {
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {}
			}
		}
	   
		if(metodo == "GET") {
			xmlhttp.open("GET", url, modo);
		} else { 
			var parametros = mountParameters(objForm); // MONTANDO OS PARAMETROS UTILIZANDO A FUNÇÃO CRIADA ABAIXO
			xmlhttp.open("POST", url, modo);
			xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded; charset=iso-8859-1");
			xmlhttp.setRequestHeader("Cache-Control", "no-store, no-cache, must-revalidate");
			xmlhttp.setRequestHeader("Cache-Control", "post-check=0, pre-check=0");
			xmlhttp.setRequestHeader("Pragma", "no-cache");
		}	
		xmlhttp.onreadystatechange = function() {
		if(xmlhttp.readyState == 1) {			
			document.getElementById(tagRetorno).innerHTML = '<img src="./imagens/fake_loader.gif">';
		}
		if(xmlhttp.readyState == 2) {
			document.getElementById(tagRetorno).innerHTML = '<img src="./imagens/fake_loader.gif">';
		}
		if(xmlhttp.readyState == 3) {
			document.getElementById(tagRetorno).innerHTML = '<img src="./imagens/fake_loader.gif">';
		}
		if(xmlhttp.readyState == 4) {
			if(xmlhttp.status == 200){
					retorno=xmlhttp.responseText;
					if(retorno=="erro"){
						alert('Erro ao cadastrar o Registro');
						document.getElementById(tagRetorno).innerHTML = "<FONT STYLE='COLOR:RED;'>Cadastro não realizado.</FONT>";
					}else{
						document.getElementById(tagRetorno).innerHTML = retorno;
						alert('Cadastro realizado com sucesso!');
						window.history.back();
						
					}
						
			}
			else{
				var nErro = xmlhttp.status;
				alert('Erro '+nErro + ': Falha ao processar o serviço.');
			}
		}
		}
		if(metodo == "GET") {
				xmlhttp.send(null);	
			} else {		
				xmlhttp.send(parametros);
		}
}

Essa função abaixo para transformar o FORM em parametros válidos a serem mandados para o asp

 

function mountParameters(objForm){

	var strReturn = "";

	if(objForm){

		var y = objForm.length-1;
		for(x = 0; x < objForm.length; x++){
			if(objForm[x].value && !objForm[x].disabled && objForm[x].style.display != "none" && objForm[x].type != "button" && objForm[x].type != "reset" && objForm[x].type != "submit"){
				if(strReturn){
					strReturn = strReturn + "&";
				}
				strReturn = strReturn + objForm[x].name + "=" + escape(objForm[x].value);
			}
		}

	}

	return strReturn;
}

PÁGINA ASP QUE RECEBE A SOLICITAÇÃO

<%
Response.Expires = 0
	Response.Expiresabsolute = Now() - 1
	Response.AddHeader "pragma","no-cache"
	Response.AddHeader "cache-control","private"
	Response.CacheControl = "no-cache"
	Response.Charset="ISO-8859-1"
	
	dim teste
	
	matricula = request("txtMatricula") 
	nome =	 request("txtNome")
	if matricula=""  then	
		response.write "não funfou"
	else
		response.write matricula&"  -  "& "nome"
	end if
%>

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.