Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 

Mostrar datos en un combo según selección que se hace en otr

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Javascript
Mensaje Jue Nov 15, 2007 3:25 am
Lor
Perlero Nuevo
Perlero Nuevo
Registrado: 28 Abr 2005
Mensajes: 94
Ubicación: Argentina, Santa FE
Mostrar datos en un combo según selección que se hace en otr Responder citando

¡¡¡ 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
Mensaje Jue Nov 15, 2007 4:49 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4034
Ubicación: Valladolid, España
Responder citando

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.
Publicar nuevo tema   Responder al tema    Foros de discusión -> Javascript Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group