Ir para conteúdo

POWERED BY:

Arquivado

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

tuhajo

Select a partir da combo

Recommended Posts

Boa Tarde Pessoal!!!

 

Tenho um formulário onde tenho os campos:

<tr>    
   <td align="left"><b>Data:</b></td>    
   <td align="left" colspan="3"><input type="text" name="dat_ocorrencia" size="10" class="texto20" readonly onclick="show_calendar('frmRotina.dat_ocorrencia');"></td>
</tr>                            
<tr>    
   <td align="left"><b>Rotina:</b></td>    
   <td align="left" colspan="3">      
     <select name="codPrograma">         
        <option value="">Selecione a Rotina</option>         
           <%=sCarregaRotinas%>      
     </select>    
   </td>
</tr>

Tenho que buscar os dados do banco quando eu colocar a data e selecionar uma rotina na combo.

E mostrar na tela em baixo o resultado.

<tr>     
   <td align="center"><b>Rotina</b></td>     
   <td align="center"><b>Ocorrência</b></td>
</tr>
<tr>   
   <td align="left" width="50%"><%=txt_rotina %></td>     
   <td align="left" width="50%"><%=txt_ocorrencia %></td>
</tr>

Como faço isso? Alguém pode me ajudar???

Grata.

 

Acho que não expliquei direito!!!

 

O que eu preciso é que qdo eu selecionar um ítem da combo, ele busque no banco de dados as características do ítem selecionado e mostre as características numa linha embaixo.

 

Além do filtro da combo, preciso tbm que faça o filtro pela data digitada.

 

Ou seja, ao digitar a data e selecionar um ítem na combo... ele tem que buscar no banco as características daquele ítem, naquela data e mostrar numa linha embaixo.

 

O código é o que está acima.

 

Agora acho que expliquei melhor!!! :D

Compartilhar este post


Link para o post
Compartilhar em outros sites

Hum... agora está muito melhor explicado realmente..

e qual é a dúvida?

 

para isso que você quer, precisará usar AJAX, se não quiser um refresh da página.

Tentou fazer ?

 

está usando ASP como server-side ?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara.. não é muito simples... mas resolvi brincar aqui... só ficou uma falhinha no InternetExplorer6, pois só funciona na primeira vez.

 

Primeiro, um parse de JSON, que é o retorno que usei(se usar outro retorno, dá pra contornar a falha que deixei, só fiz com JSON, pq é interesante)

 

http://code.google.com/p/json-sans-eval/

o script server-side, que vai trazer os filhos do id_cliente enviado:

 

function.inc.php

<?php
function intGet( $campo ){
	return isset( $_GET[ $campo ] ) ? (int)$_GET[ $campo ] : 0;
}
	if( intGet('id_cliente')==1 )
	{
		echo 'var filhos = [{"nome": "Jaqueline", "idade": "21"}, {"nome": "Juliana", "idade": "19"}, {"nome": "Helen", "idade": "18"}]';
	}
	else if( intGet("id_cliente")==2 )
	{
		echo 'var filhos = [{"nome": "Flavinha", "idade": "22"}, {"nome": "Bruna", "idade": "20"}]';
	}
	else
		echo 'var filhos = [{"nome": "Esse cliente não tem filhos!", "idade": ""}]';
e por fim:

index.php

<html>
<head>
	<title>Preenche tabela com jSON - AJAX</title>
	<meta name="author" content="William Bruno" />
	<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
	
<script type="text/javascript" src="json_sans_eval.js"></script>
<script type="text/javascript">
function id( el ){
	return document.getElementById( el );
}
function cE( el ){
	return document.createElement( el );
}
function tN( text ){
	return document.createTextNode( text );
}
function getHTTPObject(){
	if(window.XMLHttpRequest){
		return new XMLHttpRequest();
	}else if(window.ActiveXObject) {
		var prefixes = ["MSXML2", "Microsoft", "MSXML", "MSXML3"]
		for(var i = 0; i < prefixes.length; i++){
			try     {
				return new ActiveXObject(prefixes[i] + ".XMLHTTP");
			} catch (e) {}
		}
	}
};
function criaLinha( valor1, valor2 )
{
	var tr = cE('tr');
	var td1 = cE('td');
	var td2 = cE('td');
	
	td1.appendChild( tN( valor1 ) );
	td2.appendChild( tN( valor2 ) );
	tr.appendChild( td1 );
	tr.appendChild( td2 );
	return tr;
};
function busca_filhos( id_cliente )
{
	var url = 'function.inc.php?id_cliente='+id_cliente;
	

	xmlHttp.onreadystatechange = function()
	{
		if (xmlHttp.readyState == 4) 
		{
			var retorno = xmlHttp.responseText;
			var tbody = id('t-clientes').getElementsByTagName('tbody')[0];
			//tbody.innerHTML = '';//dá pau no IE
		
			var filhos = jsonParse( retorno );// http://code.google.com/p/json-sans-eval/
			
			
			for( var i=0; i<filhos.length; i++ )
			{
				tbody.appendChild( criaLinha( filhos[i].nome, filhos[i].idade ) );
			}
		}
	}
	xmlHttp.open( 'GET', url, true );
	xmlHttp.send( null );
};

var xmlHttp = getHTTPObject();
window.onload = function()
{
	id('id_cliente').onchange = function()
	{
		busca_filhos( this.value );
	};
};
</script>
</head>
<body>
	<form action="" method="post">
		<fieldset>
			<label>Clientes: <select name="id_cliente" id="id_cliente">
				<option value="0">--Selecione--</option>
				<option value="1">William</option>
				<option value="2">Bruno</option>
				</select></label>
		</fieldset>
	</form>
	<table id="t-clientes">
		<thead>
			<tr>
				<th>Nome</th><th>Telefone</th>
			</tr>
		</thead>
		<tbody>
		</tbody>
	</table>
</body>
</html>

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.