Tengo un Form con 2 campos tipo combos, una con categorías de materiales y la otra de materiales. Yo necesito un Javascript para que cuando el usuario seleccione una categoría determinada, le aparezca en el otro combo SOLO los materiales que pertenecen a esa categoría.
Los combos se llenan con datos de una base de datos:
Using perl Syntax Highlighting
# Categorías de material
#------------------------------------------------------------------------------
my (%categorias_material)= ('-1' => ' Seleccione Categoría del Material');
{
my $ref = $dbh_m->selectall_arrayref( " SELECT id_categoria_mat, nombre" .
" FROM categorias_material " );
foreach (@$ref) {$categorias_material{${$_}[0]} = ${$_}[1] }
}
my (@categorias_material) = sort { $categorias_material{$a} cmp
$categorias_material{$b}} keys %categorias_material;
# Materiales
#------------------------------------------------------------------------------------------------------------------------------
my (%materiales)= ('-1' => ' Seleccione Material');
{
my $ref = $dbh ->selectall_arrayref( " SELECT id_categoria_mat, id_material, nombre" .
" FROM materiales ");
foreach (@$ref) {$materiales{${$_}[0] . '-' . ${$_}[1]} = ${$_}[2] }
}
my (@materiales) = sort {$materiales{$a} cmp $materiales{$b}} keys %materiales;
# EN MI FORMULARIO desplayo los siguientes CAMPOS
#------------------------------------------------------------------------------------------------------------------------------
TR( td({-align=>"left",-colspan=>2 , -height=>'40'},
b("Categoría: "),
scrolling_list(-name=>"id_categoria_mat",
-id=>"id_categoria_mat",
-override=>1,
-default=>$id_categoria_mat,
-size=>1,
-value=>\@categorias_material,
-labels=>\%categorias_material,
-class=>'texto_form',
-onChange=>"llenar_materiales_segun categoria(this.value)" ) )),
TR( td({-align=>"left",-colspan=>2, -height=>'45'},
b("Material: " ),
scrolling_list(-name=>'id_material',
-id=>'id_material',
-default=>$id_material,
-override=>1,
-size=>1,
-value=>\@materiales,
-class=>'texto_form',
-labels=>\%materiales ) )),
#------------------------------------------------------------------------------
my (%categorias_material)= ('-1' => ' Seleccione Categoría del Material');
{
my $ref = $dbh_m->selectall_arrayref( " SELECT id_categoria_mat, nombre" .
" FROM categorias_material " );
foreach (@$ref) {$categorias_material{${$_}[0]} = ${$_}[1] }
}
my (@categorias_material) = sort { $categorias_material{$a} cmp
$categorias_material{$b}} keys %categorias_material;
# Materiales
#------------------------------------------------------------------------------------------------------------------------------
my (%materiales)= ('-1' => ' Seleccione Material');
{
my $ref = $dbh ->selectall_arrayref( " SELECT id_categoria_mat, id_material, nombre" .
" FROM materiales ");
foreach (@$ref) {$materiales{${$_}[0] . '-' . ${$_}[1]} = ${$_}[2] }
}
my (@materiales) = sort {$materiales{$a} cmp $materiales{$b}} keys %materiales;
# EN MI FORMULARIO desplayo los siguientes CAMPOS
#------------------------------------------------------------------------------------------------------------------------------
TR( td({-align=>"left",-colspan=>2 , -height=>'40'},
b("Categoría: "),
scrolling_list(-name=>"id_categoria_mat",
-id=>"id_categoria_mat",
-override=>1,
-default=>$id_categoria_mat,
-size=>1,
-value=>\@categorias_material,
-labels=>\%categorias_material,
-class=>'texto_form',
-onChange=>"llenar_materiales_segun categoria(this.value)" ) )),
TR( td({-align=>"left",-colspan=>2, -height=>'45'},
b("Material: " ),
scrolling_list(-name=>'id_material',
-id=>'id_material',
-default=>$id_material,
-override=>1,
-size=>1,
-value=>\@materiales,
-class=>'texto_form',
-labels=>\%materiales ) )),
Coloreado en 0.004 segundos, usando GeSHi 1.0.8.4
¿Cómo genero la función Javascript: llenar_materiales_segun_categoria para obtener de todos los materiales que conforman el arreglo de materiales, SOLO los que tienen la categoría elegida en el otro combo?
Muchísimas gracias