Ir para conteúdo

POWERED BY:

Arquivado

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

gilbertojr

[Resolvido] Ajax e Asp e (input text)

Recommended Posts

olá pessoal mais uma vez apanhando aqui http://forum.imasters.com.br/public/style_emoticons/default/grin.gif seguinte, alguém poderia me ajudar, eu tenho um formulário e nesse form tenho um campo select

quando seleciono alguma das opções eu queria que ele consulta-se no db e voltasse com o resultado em campos do tipo "input text" vão ser 4 campos do tipo "text".

 

estes "input text" fazem parte do mesmo formulário onde esta o select, a minha idéia é preencher com dados vindo do db usando o select.

 

tentei aqui algumas coisas que fiz, mas não deu certo.. corri atrás na net pra achar algo parecido mas os que achei não consegui adaptar.

 

alguém pode me ajudar?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ideia é pegar o valor do select e fazer uma consulta básica onde retorna os dados que você precisa.

 

Poste o que você já tentou fazer.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gilberto,

 

O que exatamente não funcionou como esperado? Tem um exemplo online de seu sistema?

Compartilhar este post


Link para o post
Compartilhar em outros sites

A ideia é pegar o valor do select e fazer uma consulta básica onde retorna os dados que você precisa.

 

Poste o que você já tentou fazer.

então meu caro, eu desfiz o que tinha pronto(fiquei nervoso por não ter a competência necessária). mas vou tentar fazer novamente. e postar aqui.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gilberto,

 

O que exatamente não funcionou como esperado? Tem um exemplo online de seu sistema?

então.. veja. sei que ainda falta completar isso. mas parei aqui:

 

ex:1 select assim: seleciono qualquer um dai.

<select name="txtEmpresa" class="buttonn" id="txtEmpresa" onchange="enviarConsultaSelect()">
			<option value="0">[ Selecione ]</option>
			<%Dim rsEmp
			Set rsEmp = cn.execute("SELECT id, empresa FROM tbl_empresa")
			Do until rsEmp.eof%>
				<option value="<%=rsEmp.fields("id").value%>"><%=rsEmp.fields("empresa").value%></option>
				<%rsEmp.movenext
			Loop
				rsEmp.Close
	Set rsEmp = nothing%></select>

Esse era o script usado pra enviar a consulta:

function GetXMLHttp() {
		var xmlHttp;
		try {
				xmlHttp = new XMLHttpRequest();
		}
		catch(ee) {
				try {
						xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
				}
				catch(e) {
						try {
								xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
						}
						catch(e) {
								xmlHttp = false;
						}
				}
		}
		return xmlHttp;
}

var Enviar = GetXMLHttp();

function enviarConsultaSelect(){
	var minhaLista = document.getElementById("txtEmpresa");
		var minhaListaPronta = minhaLista.options[minhaLista.selectedIndex].value;
		
		var URL = "processador.asp?acao=verLista&id="+minhaListaPronta+"";
	Enviar.open("GET", URL, true);
		Enviar.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		minhaLista.value = "";
		minhaListaPronta = "";
		Enviar.send(null);
}

página processador.asp:

<%
	if request.QueryString("acao") = "verLista" then
		Dim rsVer
		Set rsVer = cn.execute("SELECT * FROM tbl_empresa WHERE id="&request.QueryString("id")&"")
			Dim strEmpresa, strTelefone
				strEmpresa = rsVer.fields("empresa").value
				strTelefone = rsVer.fields("telefone").value
	end if
	%>

var URL = "processador.asp?acao=verLista&id="+minhaListaPronta+""; <--- esse link, bom ai tenho agora o id que com ele pego os dados do cliente que foi selecionado e com isso voltar a página "index.asp" com estes dados. Mas exatamente ai não estou conseguindo bolar algo, pra voltar com estes dados. e adicionar em "2 input text". é isso!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode gerar no "processador.asp" os inputs, ou passar os valores para variáveis JavaScript e usar uma função equivalente ao EVAL para que o seja reconhecida.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você pode gerar no "processador.asp" os inputs, ou passar os valores para variáveis JavaScript e usar uma função equivalente ao EVAL para que o seja reconhecida.

então. estes inputs já existem na primeira página Ex: "index.asp" de onde parte o select, que envia via ajax para o "processador.asp" ... minha dúvida é como vou poder voltar com isso. Não posso criar outros inputs lá no processador.asp porque se não eu teria mais 2. queria voltar com estes dados para os 2 que ja tenho. "passar os valores para variáveis JavaScript e usar uma função equivalente ao EVAL para que o seja reconhecida.", isso me chamou a atenção, Já que vou voltar com 2 valores. pode me dar um exemplo?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se com isso já consegue algo.

function enviarConsultaSelect(){
var minhaLista = document.getElementById("txtEmpresa");
	var minhaListaPronta = minhaLista.options[minhaLista.selectedIndex].value;

	var URL = "processador.asp?acao=verLista&id="+minhaListaPronta+"";
Enviar.open("GET", URL, true);
	Enviar.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

	minhaLista.value = "";
	minhaListaPronta = "";
	Enviar.send(null);
	Eval(Enviar.responseText);
	alert(strEmpresa);
	alert(strTelefone);
}

Tem que alterar o seu processador.asp. Fiz de cabeça, pode conter erros.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Veja se com isso já consegue algo.

function enviarConsultaSelect(){
	var minhaLista = document.getElementById("txtEmpresa");
		var minhaListaPronta = minhaLista.options[minhaLista.selectedIndex].value;
		
		var URL = "processador.asp?acao=verLista&id="+minhaListaPronta+"";
	Enviar.open("GET", URL, true);
		Enviar.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		
		minhaLista.value = "";
		minhaListaPronta = "";
		Enviar.send(null);
		Eval(Enviar.responseText);
		alert(strEmpresa);
		alert(strTelefone);
}
Tem que alterar o seu processador.asp. Fiz de cabeça, pode conter erros.

Salgado, muito obrigado por me responder. Eu acabei arrumando outro jeito, pra cobrir esta parte. fiz assim. meio loco mais funcionou.

primeira página.

<select name="txtEmpresa" class="buttonn" id="txtEmpresa" onchange="makeRequest('voltaComFormulario.asp?formCliente=2',2);">
			<option value="0">[ Selecione ]</option>
			<%Dim rsEmp
			Set rsEmp = cn.execute("SELECT id, empresa FROM tbl_empresa")
			Do until rsEmp.eof%>
				<option value="<%=rsEmp.fields("id").value%>"><%=rsEmp.fields("empresa").value%></option>
				<%rsEmp.movenext
			Loop
				rsEmp.Close
	Set rsEmp = nothing%></select>      <img src="img/ultra/icon_topic_latest.gif" alt="" width="11" height="9" /> Cliente Normal  
	<input type="button" class="buttonn" value="OK" style="cursor: pointer;" onclick="makeRequest('voltaComFormulario.asp?formCliente=1',2);"/></div>
<div id="divMostraForm"></div>
Script usado

/*scrip para ler javascript dentro do ajax*/
	var http_request = false;
	var bSaf = (navigator.userAgent.indexOf('Safari') != -1);
	var bOpera = (navigator.userAgent.indexOf('Opera') != -1);
	var bMoz = (navigator.appName == 'Netscape');
	function execJS(node){
	  var st = node.getElementsByTagName('SCRIPT');
	  var strExec;

	  for(var i=0;i<st.length; i++) {	 
		if (bSaf) {
		  strExec = st[i].innerHTML;
		}
		else if (bOpera) {
		  strExec = st[i].text;
		}
		else if (bMoz) {
		  strExec = st[i].textContent;

		}
		else {
		  strExec = st[i].text;
		}
		try {
		  eval(strExec.split("<!--").join("").split("-->").join(""));
		} catch(e) {
		  alert(e);
		}
	  }
	}
/* fim desta funçăo */

/*Script para a chamada e verificaçăo do browser --- Ajax*/
			function makeRequest(url,prop){
				http_request = false;
				if (window.XMLHttpRequest) { /* Mozilla, Safari,...*/
					http_request = new XMLHttpRequest();
					if (http_request.overrideMimeType) {
						http_request.overrideMimeType('text/xml');
					}
				} else if (window.ActiveXObject) { /* IE */
					try {
						http_request = new ActiveXObject("Msxml2.XMLHTTP");
					} catch (e) {
						try {
						http_request = new ActiveXObject("Microsoft.XMLHTTP");
						} catch (e) {}
					}
				}
				if (!http_request) {
					alert('Giving up :( Cannot create an XMLHTTP instance');
					return false;
				}

				
				if(prop == 2){
					var minhaLista = document.getElementById("txtEmpresa");
					var minhaListaPronta = minhaLista.options[minhaLista.selectedIndex].value;
					url += "&id="+minhaListaPronta;
					http_request.open('POST', url, true);
				}else{
					http_request.open('POST', url, true);
				}
			http_request.send(null);
				
				http_request.onreadystatechange = function(){
					if (http_request.readyState == 4) {
						var textos = http_request.responseText;
						
						if(prop == 1){
							document.getElementById('divMostraEmpresa').innerHTML = textos;
							execJS(document.getElementById('divMostraEmpresa'));
						}else if(prop == 2){
								document.getElementById('divMostraForm').innerHTML = textos;
								execJS(document.getElementById('divMostraForm'));							
							}else{
								document.getElementById('divMostra').innerHTML = textos;
								execJS(document.getElementById('divMostra'));
						}
					   }
					 
		   		 }
			}
/*Fim Script para Ajax*/

url pedida, voltaComFormulario.asp

<%
if request.QueryString("formCliente") = "1" then
%>
popopopopopopopopopoppopopooopo
<%else%>
papaapapapaapapapaapapapapapaap
<%	Set rsFormEmpresa = nothing
end if	%>

 

Assim o usuário escolhe logo no inicio é uma empresa cadastrada ou se vai ser um usuário novo...

meu muito obrigado, Salgado pela ajuda.

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.