Marcello, faz o seguinte :
<!--- // esse código é só para popular os Objetos de
Consulta para mostrar como o exemplo funcionará
//--->
<cfscript>
qrCategorias = QueryNew('cod_categoria, descricao');
qrSubCategorias = QueryNew('cod_categoria, cod_sub_categoria, descricao');
qrCategorias = QueryNew('cod_categoria, descricao');
qrSubCategorias = QueryNew('cod_categoria, cod_sub_categoria, descricao');
// Popula
categorias
for( j = 1; j lte 10;j = j + 1 )
{
QueryAddRow( qrCategorias );
QuerySetCell( qrCategorias, 'cod_categoria', j );
QuerySetCell( qrCategorias, 'descricao', 'Categoria ' & j );
}
for( j = 1; j lte 10;j = j + 1 )
{
QueryAddRow( qrCategorias );
QuerySetCell( qrCategorias, 'cod_categoria', j );
QuerySetCell( qrCategorias, 'descricao', 'Categoria ' & j );
}
// Cria SubCategorias com
Números Aleatórios
for( j = 1; j lte qrCategorias.recordcount; j = j + 1 )
{
for( i = 1; i lte 10; i = i + 1 )
{
if ( i mod 2 is 0 and i neq RandRange( 1, i ))
{
QueryAddRow( qrSubCategorias );
QuerySetCell( qrSubCategorias, 'cod_categoria', j );
QuerySetCell( qrSubCategorias, 'cod_sub_categoria', i * Round( RandRange(i, j) ) );
QuerySetCell( qrSubCategorias, 'descricao', 'SubCategoria ' & i * Round ( RandRange(i, j)) );
}
}
}
</cfscript>
for( j = 1; j lte qrCategorias.recordcount; j = j + 1 )
{
for( i = 1; i lte 10; i = i + 1 )
{
if ( i mod 2 is 0 and i neq RandRange( 1, i ))
{
QueryAddRow( qrSubCategorias );
QuerySetCell( qrSubCategorias, 'cod_categoria', j );
QuerySetCell( qrSubCategorias, 'cod_sub_categoria', i * Round( RandRange(i, j) ) );
QuerySetCell( qrSubCategorias, 'descricao', 'SubCategoria ' & i * Round ( RandRange(i, j)) );
}
}
}
</cfscript>
<!--- // Esse código deve ser removido
//--->
<!--- código _javascript_ / cfml
--->
<html>
<head>
<title>Exemplo com Combo </title>
<script language="_javascript_" type="text/_javascript_">
function f_cria_option( p_select, p_valor, p_texto, p_selected )
{
if( p_select != null && p_select.options != null )
p_select.options[ p_select.options.length ] = new Option( p_texto, p_valor, false, p_selected );
}
<head>
<title>Exemplo com Combo </title>
<script language="_javascript_" type="text/_javascript_">
function f_cria_option( p_select, p_valor, p_texto, p_selected )
{
if( p_select != null && p_select.options != null )
p_select.options[ p_select.options.length ] = new Option( p_texto, p_valor, false, p_selected );
}
function f_get_sub_categoria( p_cod_categoria )
{
var v_sub_categoria = []; // cria vetor de armazenamento temporário
with( document.form_exemplo )
{
cod_categoria.value = p_cod_categoria;
// limpa conteudo do select que vai receber novos valores
for( var i = ( cod_sub_categoria.options.length - 1 ); i >= 0; i-- ) cod_sub_categoria.options[ i ] = null;
// popula novos valores ao select
for ( var i = v_sub_categoria.length; i >= 0; i--)
{
f_cria_option( cod_sub_categoria , null , '-- Selecione SubCategoria --', true );
<cfoutput
query="qrSubCategorias">
if( p_cod_categoria == #val( qrSubCategorias.cod_categoria )# )
f_cria_option( cod_sub_categoria , '#qrSubCategorias.cod_sub_categoria#' , '#qrSubCategorias.descricao#', false );
</cfoutput>
}
}
}
</script>
</head>
<body id="body">
<form name="form_exemplo" id="form_exemplo_combo">
<select name="cod_categoria" id="cod_categoria" >
<option value="">-- Selecione Categoria </option>
<cfoutput query="qrCategorias">
<option value="#qrCategorias.cod_categoria#">#qrCategorias.descricao#</option>
</cfoutput>
</select>
<select name="cod_sub_categoria" id="cod_sub_categoria">
<option value="">-- Selecione SubCategoria </option>
</select>
</form>
</body>
</html>
if( p_cod_categoria == #val( qrSubCategorias.cod_categoria )# )
f_cria_option( cod_sub_categoria , '#qrSubCategorias.cod_sub_categoria#' , '#qrSubCategorias.descricao#', false );
</cfoutput>
}
}
}
</script>
</head>
<body id="body">
<form name="form_exemplo" id="form_exemplo_combo">
<select name="cod_categoria" id="cod_categoria" >
<option value="">-- Selecione Categoria </option>
<cfoutput query="qrCategorias">
<option value="#qrCategorias.cod_categoria#">#qrCategorias.descricao#</option>
</cfoutput>
</select>
<select name="cod_sub_categoria" id="cod_sub_categoria">
<option value="">-- Selecione SubCategoria </option>
</select>
</form>
</body>
</html>
Bom eu
fiz um exemplo bem didático, de forma a proporcionar a reutilização em diversos
formulários que você possua
De: Marcello Souza [mailto:[EMAIL PROTECTED]
Enviada em: quinta-feira, 1 de julho de 2004 13:01
Para: [EMAIL PROTECTED]
Assunto: RE: [cf-brasil] Preencher um campo select conforme
Marcio valeu.....
Mas tava querendo ter a idéia de como desenvolver isso do zero......
Se puder me dar uma força....
Marcello de Souza
MSN Messenger: converse com os seus amigos online. Instale grátis. Clique aqui.
--^^--------------------------------------------------------------- This email was sent to: [EMAIL PROTECTED] EASY UNSUBSCRIBE click here: http://topica.com/u/?b1dnXn.b7M5gI.YXJxdWl2 Or send an email to: [EMAIL PROTECTED] For Topica's complete suite of email marketing solutions visit: http://www.topica.com/?p=TEXFOOTER --^^---------------------------------------------------------------