Página 1 de 1

CGI::Ajax - Internet Explorer -Firefox

NotaPublicado: 2008-09-09 05:13 @259
por Lor
Agradecería si alguien me pudiese ayudar con el siguiente problema, hace días que intento detectar el error y no lo logro.

Estoy corriendo una aplicación sobre Windows, es un formulario en donde uso CGI::Ajax para que despliegue uno u otro valor dependiendo de lo que el usuario va eligiendo.

El problema es que si lo ejecuto en Internet Explorer anda perfecto, pero si lo corro en Firefox, se borra el valor dado por el usuario en los campos que utilizaron Ajax. Es decir, cuando se ejecuta el submit del form, estos campos ya salen vacíos aunque en pantalla aparezca con valor.

Les paso un pedazo de ejemplo :

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
sub generate_html() {

my $myhtml;
......
$myhtml = $myhtml . start_form(-id=>'form_actualiza_rubros',
                                  -name=>'form_actualiza_rubros',
                                  -method=>'post', -action=>$SCRIPT_NAME);

   $myhtml = $myhtml . TR(td({-align=>'left', -height=>'20' ,-colspan=>5}," " ));

   $myhtml = $myhtml .  TR( td({-align=>"left",-colspan=>5, -height=>'45'},
                   "Cliente " .  scrolling_list(-name=>'id_cliente',
                          -id=>'id_cliente',
                          -override=>1,
                          -size=>1,
                          -value=>\@clientes,
                          -onChange=>"load_domicilios(['id_cliente','sid'],['div_domicilios'],'POST')",
                          -class=>'texto_form',
                          -labels=>\%clientes) ));

    $myhtml = $myhtml . TR( td({-align=>"left",-colspan=>5, -height=>'45'},
         div({-id=>'div_domicilios'},
                  ( "Domicilio, Planta "),  scrolling_list(-name=>'id_domicilio',
                         -id=>'id_domicilio',
                          -override=>1,
                         -size=>1,
                         -value=>\@domicilios,
                         -class=>'texto_form',
                         -labels=>\%domicilios)) ));
#.............
}

sub load_domicilios {
        my $id_cliente = shift;

  my $myhtml;
  my %domicilios = ('-1'=>'  Seleccione Domicilio o Planta al que corresponde el rubro');
  my $ref =  $dbh_i->selectall_arrayref( " SELECT d.id_domicilio, d.nombre_tecnico " .
                                         " FROM  domicilios d " .
                                         " WHERE d.id_cliente = $id_cliente " );

  foreach (@$ref) {$domicilios{${$_}[0]} = ${$_}[1]; }
  my (@domicilios) = sort { $domicilios{$a} cmp $domicilios{$b}}  keys %domicilios;

        $myhtml = "Domicilio, Planta " .  scrolling_list(-name=>'id_domicilio',
                          -id=>'id_domicilio',
                           -override=>1,
                          -size=>1,
                          -value=>\@domicilios,
                          -class=>'texto_form',
                          -labels=>\%domicilios);
        return($myhtml);
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4



Bueno ¡¡¡¡ muchas gracias !!!! :D

NotaPublicado: 2008-09-09 05:36 @275
por explorer
O faltan líneas o no has creado el comienzo de tabla (start_table()).

Repasa el HTML generado, para ver si está bien...