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 :
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);
}
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.006 segundos, usando GeSHi 1.0.8.4
Bueno ¡¡¡¡ muchas gracias !!!!