Jue Nov 15, 2007 3:25 am
|
 |
Lor
Perlero Nuevo

|
Registrado: 28 Abr 2005
Mensajes: 88
Ubicación: Argentina, Santa FE
|
|
| Mostrar datos en un combo según selección que se hace en otr |
|
|
¡¡¡ Muchas gracias por la buena predisposición para ayudarme !!! Les planteo mi problema:
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:
| Perl: | # 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 ) )), |
¿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 |
|
|
|

Jue Nov 15, 2007 4:49 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 3894
Ubicación: Valladolid, España
|
|
|
|
|
Puedes hacer que se redibuje la página al recibir un evento onchange() en el primer select. Así al menos podrás mostrar los valores actualizados en los dos select.
Otra opción es usar Ajax, por ejemplo. En este foro hay algunos ejemplos. |
|
Powered by phpBB © 2001, 2005 phpBB Group
|