Ir para conteúdo

POWERED BY:

Arquivado

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

Fernandooc2

Combo com mensagem "Carregando"

Recommended Posts

Ola amigos, estou tendo um problema com um site de um cliente que estou desenvolvendo... Vejam o codigo:

 

AJAX.ASP

===============================================

<%@ Language=VBScript %>

<HTML>

<HEAD>

<script>

// A função abaixo pega a versão mais nova do xmlhttp do IE e verifica se é Firefox. Funciona nos dois.

function createXMLHTTP()

{

try

{

ajax = new ActiveXObject("Microsoft.XMLHTTP");

}

catch(e)

{

try

{

ajax = new ActiveXObject("Msxml2.XMLHTTP");

alert(ajax);

}

catch(ex)

{

try

{

ajax = new XMLHttpRequest();

}

catch(exc)

{

alert("Esse browser não tem recursos para uso do Ajax");

ajax = null;

}

}

return ajax;

}

 

 

var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",

"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",

"Microsoft.XMLHTTP"];

for (var i=0; i < arrSignatures.length; i++) {

try {

var oRequest = new ActiveXObject(arrSignatures);

return oRequest;

} catch (oError) {

}

}

 

throw new Error("MSXML is not installed on your system.");

} function recuperarCarro(sTipo)

{

// Criação do objeto XMLHTTP

var oHTTPRequest = createXMLHTTP();

// Abrindo a solicitação HTTP. O primeiro parâmetro informa o método post/get

// O segundo parâmetro informa o arquivo solicitado que pode ser asp, php, txt, xml, etc.

// O terceiro parametro informa que a solicitacao nao assincrona,

// Para solicitação síncrona, o parâmetro deve ser false

oHTTPRequest.open("post", "executa.asp", true);

// Para solicitações utilizando o método post, deve ser acrescentado este cabecalho HTTP

oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

// A função abaixo é executada sempre que o estado do objeto muda (onreadystatechange)

oHTTPRequest.onreadystatechange=function() {

// O valor 4 significa que o objeto já completou a solicitação

if (oHTTPRequest.readyState==4){

// Abaixo o texto é gerado no arquivo executa.asp e colocado no div

document.all.divCarros.innerHTML = oHTTPRequest.responseText;

}

}

// Abaixo é enviada a solicitação. Note que a configuração

// do evento onreadystatechange deve ser feita antes do send.

oHTTPRequest.send("tipo=" + sTipo);

}

</script>

</HEAD>

<body onload="recuperarCarro(document.formulario.cmbTipo.value)">

<form id="formulario" name="formulario">

<table border="0">

<tr>

<td>Escolha uma marca:</td>

<td>

<select name="cmbTipo" id="cmbTipo" onchange="recuperarCarro(this.value)" style="WIDTH:200px">

<%

Dim oConn, oRS

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("banco.mdb")

set oRS = oConn.Execute("SELECT * FROM tb_marca ORDER BY 2")

while not oRS.eof

Response.Write "<option value=" & oRS(0) & ">" & oRS(1) & "</option>"

oRS.movenext

wend

%>

</select>

</td>

</tr>

<tr>

<td>Carro:</td>

<td><div id="divCarros"></div>

</td>

</tr>

</table>

</form>

</body>

</HTML>

===============================================

 

 

 

EXECUTA.ASP

===============================================

<select name="cmbCarros" id="cmbCarros" style="width:100%;">

<%

Dim oConn, oRS

Set oConn = Server.CreateObject("ADODB.Connection")

oConn.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("banco.mdb")

set oRS = oConn.Execute("SELECT * FROM tb_carros where tipo = " & Request.Form("tipo") & " ORDER BY 2")

while not oRS.eof

Response.Write "<option value=" & oRS(0) & ">" & server.HTMLEncode(oRS(2)) & "</option>"

oRS.movenext

wend

%>

</option>

</select>

===============================================

 

 

Gostaria que quando ele selecionasse a MARCA aparecesse a mensagem "Carregando" ou "Aguarde" no combo CARRO, assim ele só conseguiria selecionar algum CARRO quando realmente tivesse.

 

O que eu queria seria a mesma coisa que acontece nesse site: http://www.telelistas.net/2/24_PA/50725_aparecida

Veja que quando você escolhe um determinado estado, o combo cidade fica readonly com a mensagem "Aguarde".

 

Alguém pode ajudar como fazer? Desde ja agradeco

Compartilhar este post


Link para o post
Compartilhar em outros sites

Use o bbcode do fórum.

Poste entre as tags [ c o d e ] e [/ c o d e ]

ajax.onreadystatechange = function() {
			//enquanto estiver processando...emite a msg de carregando
			if(ajax.readyState == 1) {
			   idOpcao.innerHTML = "Carregando...!";   
			}
Esse é um exemplo, de um combobox q tenho.

Testa se está no estado 1, e manda a mensagem...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Como foi que você implementou ?

oHTTPRequest.onreadystatechange=function() {
			//enquanto estiver processando...emite a msg de carregando
			if(oHTTPRequest.readyState == 1) {
			   document.all.divCarros.innerHTML = "Carregando...!";   
			}
		   // O valor 4 significa que o objeto já completou a solicitação
		   if (oHTTPRequest.readyState == 4){
		   // Abaixo o texto é gerado no arquivo executa.asp e colocado no div
			   document.all.divCarros.innerHTML = oHTTPRequest.responseText;
		   }

Compartilhar este post


Link para o post
Compartilhar em outros sites

Oi William,

 

Do mesmo jeito que você colocou porém não funciona a mensagem de carregando. O combo funciona mas eu queria que ele travasse enquanto carregasse aparecesse uma mensagem carregando mas não consigo de maneira nenhuma:

 

<script>
// A função abaixo pega a versão mais nova do xmlhttp do IE e verifica se é Firefox. Funciona nos dois.
	function createXMLHTTP() 
	{
		try 
			{
			ajax = new ActiveXObject("Microsoft.XMLHTTP");
			} 
			catch(e) 
					{
						try 
							{
								ajax = new ActiveXObject("Msxml2.XMLHTTP");
								alert(ajax);
							}
								catch(ex) 
										{
											try 
												{
													ajax = new XMLHttpRequest();
												}
													catch(exc) 
															{
																	alert("Esse browser não tem recursos para uso do Ajax");
																	ajax = null;
															}
										}
						return ajax;
					}

var arrSignatures = ["MSXML2.XMLHTTP.5.0", "MSXML2.XMLHTTP.4.0",
"MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP",
"Microsoft.XMLHTTP"];
for (var i=0; i < arrSignatures.length; i++) {
try {
var oRequest = new ActiveXObject(arrSignatures[i]);
return oRequest;
} catch (oError) {
}
}

throw new Error("MSXML is not installed on your system.");
}  
function recuperarCarro(sTipo)
{
// Criação do objeto XMLHTTP
var oHTTPRequest = createXMLHTTP(); 
// Abrindo a solicitação HTTP. O primeiro parâmetro informa o método post/get
// O segundo parâmetro informa o arquivo solicitado que pode ser asp, php, txt, xml, etc.
// O terceiro parametro informa que a solicitacao nao assincrona,
// Para solicitação síncrona, o parâmetro deve ser false
oHTTPRequest.open("post", "executa.asp", true);
// Para solicitações utilizando o método post, deve ser acrescentado este cabecalho HTTP
oHTTPRequest.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
// A função abaixo é executada sempre que o estado do objeto muda (onreadystatechange)

oHTTPRequest.onreadystatechange=function() {
			//enquanto estiver processando...emite a msg de carregando
			if(oHTTPRequest.readyState == 1) {
			   document.all.divCarros.innerHTML = "Carregando...!";   
			}
		   // O valor 4 significa que o objeto já completou a solicitação
		   if (oHTTPRequest.readyState == 4){
		   // Abaixo o texto é gerado no arquivo executa.asp e colocado no div
			   document.all.divCarros.innerHTML = oHTTPRequest.responseText;
		   }
}
		   
// Abaixo é enviada a solicitação. Note que a configuração
// do evento onreadystatechange deve ser feita antes do send.
oHTTPRequest.send("marcax=" + sTipo);
}
</script>

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.