• Publicidad

Ajax, Bucle, Llamado a función

Así que programas sin strict y las expresiones regulares son otro modo de hablar. Aquí encontrarás respuestas de nivel avanzado, no recomendable para los débiles de corazón.

Ajax, Bucle, Llamado a función

Notapor Lor » 2009-11-14 18:14 @801

Estoy trabajando con CGI::Ajax y no puedo resolver el siguiente problema.

Tengo una aplicación en Perl que tira en pantalla datos resumidos de una tabla, resultado de una consulta MySQL. Mi idea es que el usuario pueda hacer clic sobre el dato y se despliegue con Ajax UN DETALLE. Es decir, un ejemplo similar a un tipo árbol de directorio, hago clic en una carpeta y se me despliegan las subcarpetas que lo componen. En mi caso despliego primero un numero N de nombres de usuarios, el operador elije uno con un CLIC por ejemplo, y con AJax le despliego un detalle e información relacionada al usuario seleccionado.

Por ejemplo de la consulta obtengo los usuarios logueados en mi sistema:

Sintáxis: [ Descargar ] [ Ocultar ]
Using text Syntax Highlighting
Usuario1
Usuario2
.
.
UsuarioN
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4


Yo anexaría algún objeto form delante del nombre del usuario para que frente a algún evento se pueda desplegar el conjunto de horas en que se logueo al sistema el usuario elegido durante el último mes. Para lograr este detalle debo llamar a una función que primeramente busque en la base de datos el resultado a mostrar para el usuario seleccionado. Para lo cual necesito enviar el id del usuario elegido. ¿Cómo lo envío? ¿Qué nombre toma esta variable que difiere de valor para cada usuario en particular?

Mi problema está en 'argv__$id_usuario': (lo siguiente se repite para cada usuario $i mostrado)

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
 $myhtml = $myhtml .  TR( {-valign=>'top', -bgcolor=>'#FFFFFF'},
                td({-align=>'left',-class=>'smallfonts'},
               textfield(-name=>'usuario'. $i ,
                        -id=>'usuario'. $i ,
                        -maxlength=>1,
                        -class=>'texto_form',
                        -OnKeyUp=>"load_sesiones(['argv__$id_usuario'], ['$resultado'], 'POST')",
                        -size=>1)),

.....
sub load_sesiones {

    # ¿Cómo leo el id del usuario para buscar los datos en la tabla?

    # Recibo el id del usuario elegido. ¿Cómo, en qué forma?
    # Genero la consulta y obtengo los datos resultado
    # Conformo el código HTML con el resultado para el usuario elegido

    return ($codigo_resultado_usuarioXX);
}
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4



Espero me sepan entender; ya voy tres días con este problema y no logro resolverlo.

Muchísimas gracias. :D
Última edición por explorer el 2009-11-14 21:44 @947, editado 2 veces en total
Razón: Estilo, ortografía, código, spainglish
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Publicidad

Re: Ajax, Bucle, Llamado a función

Notapor explorer » 2009-11-14 22:55 @996

Estás usando, correctamente, la forma especial

'argv__$id_usuario'

es decir, la presencia de '__' hace que la URL a llamar sea de la forma

script.pl?argv=<valor de $id_usuario>

Y la forma de recuperarlo será con

my $id = $cgi->params('argv');

Tal cual lo tienes escrito
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
-OnKeyUp=>"load_sesiones(['argv__$id_usuario'], ['$resultado'], 'POST')",
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

es correcto: está entrecomillado doble por lo que hará una expansión de las variables $resultado y $id_usuario. Y suponemos que $id_usuario contiene el id de usuario que queremos recibir y que $resultado es nombre de la capa que recibirá el resultado HTML.

La llamada llegará a load_sesiones(), y la forma de leerlo será como te he dicho antes, con el params() (esto último es necesario porque no usas el valor estándar args).

Bueno, esto lo he dicho de memoria. Habría que hacer una prueba...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ajax, Bucle, Llamado a función

Notapor Lor » 2009-11-15 18:32 @814

Explorer, ¡¡¡ gracias por tu respuesta !!! Pero no puedo detectar el error. En el log del Apache me aparece lo siguiente: returning Bad Request status 400. He intentado poner en la misma aplicación otros objetos conjuntamente con éste con llamada a Ajax y andan perfectamente pero éste no funciona. No llega a ejecutar la función load_sesiones() porque estoy poniendo banderas de impresión en la misma y no se imprimen en pantalla, señal que no llega a ejecutarse...

Parte del código : (aquí debe estar el error, pero no lo detecto)
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
   $myhtml = $myhtml . TR( {-valign=>'top', -bgcolor=>'#FFFFFF'},
               td({-align=>'left',-class=>'smallfonts'},
                   textfield(
                       -name=>'usuario'. $i ,
                       -id=>'usuario'. $i ,
                       -maxlength=>1,
                       -class=>'texto_form',
                       -OnKeyUp=>"load_sesiones(['argv__$id_usuario'], ['$nombre_res'], 'POST')",
                       -size=>1
                   )
               ),

# ........
sub load_sesiones {
    # CREO que NO llega a ejecutarse
    my $cgi= new->CGI;
    my $id_login = $cgi->param('argv');
    #.
    #.
    # .
    return (resultado);
}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Realmente estoy desorientada, porque pongo otras llamadas a Ajax en la misma aplicación corriendo conjuntamente y funcionan pero ésta que tiene características REPETITIVAS ya que la misma se ejecuta para cada usuario seleccionado tiene problemas. ¿Estará el problema en el nombre CONCATENADO con $i de las variables?

Bueno, espero si me puedes dar una mano, porque ¡¡¡¡hoy domingo también estuve con este tema y sin solución!!!!

¡¡¡¡Muchas gracias!!!! :D
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Re: Ajax, Bucle, Llamado a función

Notapor explorer » 2009-11-15 20:09 @881

Para que sea llamada la función load_sesiones() dentro de Perl, en alguna parte del programa Perl debe haber una línea así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
my $pjx = new CGI::Ajax( 'load_sesiones' => \&load_sesiones);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

El primer load_sesiones() se refiere a la función Javascript que recibirá el evento de la textarea y realizará la llamada Ajax. Y el segundo es el nombre de la función Perl que será llamada por CGI::Ajax.

El primer load_sesiones() es necesario porque es así como lo tienes puesto en el evento OnKeyUp.

Recuerda que tienes a tu disposición los métodos JSDEBUG() y DEBUG(). Con
$pjx->JSDEBUG(1); muestra la URL que genera la petición. Con $pjx->DEBUG(1); muestra información en los logs en la parte del servidor.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ajax, Bucle, Llamado a función

Notapor Lor » 2009-11-16 04:57 @248

Gracias, explorer, todo esto ya lo estoy usando, pero sigo sin detectar el problema. Me doy por vencida.

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
if ($Q::consultar) {

      my $cgi = new CGI;
      my $pjx = new CGI::Ajax('load_sesiones' => \&load_sesiones);
      $pjx->JSDEBUG(1);
      $pjx->DEBUG(1);
      print $pjx->build_html( $cgi, \&show_html);

}

.....

sub show_html() {
        my $tmphtml = generate_html();
        my $myhtml = <<EOHTML;
        $tmphtml
EOHTML

        return($myhtml);
}

...

sub generate_html() {

 my $myhtml;

 While..(cantidad usuarios) ...

     $myhtml = $myhtml .  TR( {-valign=>'top', -bgcolor=>'#FFFFFF'},
               td({-align=>'left',-class=>'smallfonts'},
                textfield(-name=>'usuario'. $i ,
                        -id=>'usuario'. $i ,
                        -maxlength=>1,
                        -class=>'texto_form',
                        -OnKeyUp=>"load_sesiones(['argv__$id_usuario','sid'], ['$nombre_res'], 'POST')",
                        -size=>1)),

               td({-align=>'left'}, $razon_social ),
               td({-align=>'center'}, $cant_sesiones ),
               td({-align=>'center'}, $fecha_ultima_sesion) );
               
               
          $myhtml_2 = $myhtml_2 . TR(td({-colspan=>5}, div({-id=>"$nombre_res"} ). '&nbsp;') );

 
......


}

sub load_sesiones {

  my $cgi= new->CGI;
  my $id_usuario = $cgi->params('argv');

.......

 return(...);

}
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Bueno, gracias por todo.
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Re: Ajax, Bucle, Llamado a función

Notapor explorer » 2009-11-16 05:43 @279

Eso no, por favor... Lor... ¡qué pena! La cantidad de energía invertida en semejante tarea...

Esto es lo que tienes que hacer...

1.- Haz una copia del programa.
2.- Quítale todo lo superfluo y déjale con lo mínimo para funcionar Y que además muestre el error. Es decir, algo como lo que has enseñado, pero en forma de programa completo y funcional.
3.- Publícalo aquí.

Es que así, es mucho más fácil ayudarte, al tener el programa completo y poder descargarlo.
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ajax, Bucle, Llamado a función

Notapor Lor » 2009-11-16 10:52 @494

¡¡¡¡¡¡¡¡RESUELTO!!!!!!!!

En mi país decimos persevera y triunfarás.

Detecté el problema. No estaba en la llamada a la función load_sesiones(), eso está correcto. El problema estaba en la definición de la función; por eso no se ejecutaba.

Explorer, ¡¡¡¡¡MUCHÍSIMAS GRACIAS!!!!! :D
Última edición por explorer el 2009-11-16 11:07 @504, editado 1 vez en total
Razón: Ortografía, anglicismos
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Re: Ajax, Bucle, Llamado a función

Notapor explorer » 2009-11-16 11:04 @503

¡Jó!

Me voy a quedar con las ganas de saber qué pasó... :(
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Ajax, Bucle, Llamado a función

Notapor Lor » 2009-11-17 06:12 @300

Explorer, para que no te quedes con la duda de lo que pasaba aquí te mando un poco de código, el objetivo de la aplicación y te marco dónde estaba el error.

¡¡¡Gracias, por todo!!!

explica.gif
Imagen que desplaya la aplicacion generada
explica.gif (52.87 KiB) Visto 4805 veces


Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #-------------------------------------------------------------------------------
  2. # SCRIPT Consulta sesiones de usuarios: El operador mete en un formulario lo
  3. # que desea consultar; un usuario en particular o todos, un rango de fechas, etc.
  4. # Al ejecutarse la consulta tira en pantalla cada usuario con la CANTIDAD de
  5. # ACCESOS que ha tenido.  Si se quiere un mayor nivel de detalle se presiona sobre
  6. # la imagen y este detalle se despliega en pantalla.
  7. #-------------------------------------------------------------------------------
  8. use strict;
  9. use CGI ':all';
  10. use CGI qw/:standard *table/;
  11. use DBI;
  12. use CGI::Session;
  13. use CGI::Ajax;
  14.  
  15. $ENV{DBDATE} = "DMY4";
  16. require("../comunes/Crypt.pm");
  17. require("../comunes/i_funciones.pm");
  18.  
  19. {
  20.  
  21.  # FORM INICIAL  : Muestra el formulario de especificación de consulta
  22.  #----------------------------------------------------------------------------
  23.  if ($control_form eq "" || $control_form eq "T"){
  24.  
  25.       my $cgi = new CGI;
  26.       my $pjx = new CGI::Ajax('load_usuarios' => \&load_usuarios);
  27.       # Aquí estaba el error: load_sesiones y limpiar_sesiones deben especificarse TAMBIÉN
  28.       # Aquí, como éstas se utilizan en el resultado y NO en el form inicial yo pensaba que
  29.       # no era necesario.
  30.       $pjx->register('load_sesiones' => \&load_sesiones);
  31.       $pjx->register('limpiar_sesiones' => \&limpiar_sesiones);
  32.  
  33.       $pjx->JSDEBUG(1);
  34.       $pjx->DEBUG(1);
  35.       print $pjx->build_html( $cgi, \&show_html);
  36. }
  37.  
  38.  
  39. #-------------------------------------------------------------------------------
  40. # Concatena TODO el HTML que hay que desplayar relacionado al FORM de CONSULTA
  41. #-------------------------------------------------------------------------------
  42. sub generate_html() {
  43.  
  44.  my $myhtml;
  45.  
  46.     ........
  47.  
  48.    $myhtml = $myhtml . TR(td({-align=>'left', -height=>'20' ,-colspan=>20},"&nbsp;" ));
  49.  
  50.     $myhtml = $myhtml . TR( td({-align=>"left",-colspan=>3 , -height=>'40'},
  51.        "Tipo de Usuario " . scrolling_list(-name=>"tipo_usuario_abm",
  52.                          -id=>"tipo_usuario_abm",
  53.                          -override=>1,
  54.                          -default=>$tipo_usuario_abm,
  55.                          -size=>1,
  56.                          -value=>\@tipos_usuarios,
  57.                          -labels=>\%tipos_usuarios,
  58.                          -onChange=>"load_usuarios(['tipo_usuario_abm','sid'],['div_usuarios'],'POST')",
  59.                          -class=>'texto_form') ),
  60.  
  61.            td({-align=>"left",-colspan=>2 },
  62.            div({-id=>'div_usuarios'},
  63.            scrolling_list(-name=>"id_tipo_usuario_abm",
  64.                               -id=>"id_tipo_usuario_abm",
  65.                               -override=>1,
  66.                               -default=>$id_tipo_usuario_abm,
  67.                               -size=>1,
  68.                               -value=>\@asoc_usuarios,
  69.                               -labels=>\%asoc_usuarios,
  70.                               -class=>'texto_form') )));
  71.  
  72.     $myhtml = $myhtml . TR({-align=>'center'},
  73.                 td({-align=>'left', -colspan=>5, -height=>30}, '&nbsp;' ));
  74.  
  75.     ............
  76.  
  77.     # Botonera al pie del formulario
  78.     #---------------------------------------------------------------------------
  79.     $myhtml = $myhtml . TR({ -valign=>"center"},
  80.                              td({-align=>"left",-height=>20, -colspan=>5 }, '&nbsp;'));
  81.  
  82.     $myhtml = $myhtml . TR({ -valign=>"center", -bgcolor=>'#E5E5E5'},
  83.                                 td({-align=>"left",-height=>20, -colspan=>5 },
  84.  
  85.                                 submit(-name=>'consultar', -value=>'Consultar', -class=>'boton'),
  86.                                 submit(-name=>'limpiar', -value=>'Limpiar Form', -class=>'boton'),
  87.  
  88.       ...............
  89.  
  90.  
  91.   return ($myhtml);
  92.  
  93.  }
  94.  
  95.  
  96.  
  97. #-------------------------------------------------------------------------------
  98. #  AJAX - Función 1 - inicial
  99. #-------------------------------------------------------------------------------
  100. sub show_html() {
  101.         my $tmphtml = generate_html();
  102.         my $myhtml = <<EOHTML;
  103.         $tmphtml
  104. EOHTML
  105.         return($myhtml);
  106. }
  107.  
  108.  
  109. ##-----------------------------------------------------------------------------
  110. # Si presiono el botón consultar debo armar todo el resultado a desplayar
  111. ##-----------------------------------------------------------------------------
  112. if ($Q::consultar ) {
  113.  
  114.       my $cgi = new CGI;
  115.      
  116.       my $pjx = new CGI::Ajax('load_sesiones' => \&load_sesiones);
  117.       $pjx->register('limpiar_sesiones' => \&limpiar_sesiones);
  118.       $pjx->JSDEBUG(1);
  119.       $pjx->DEBUG(1);
  120.       print $pjx->build_html( $cgi, \&show_html_2);
  121. }
  122.  
  123.  
  124. #-------------------------------------------------------------------------------
  125. #  Concatena TODO el HTML RESULTADO CONSULTA que hay que desplayar,
  126. #-------------------------------------------------------------------------------
  127. sub generate_html_2() {
  128.  
  129.  my $myhtml_2;
  130.        ............
  131.        
  132.        while ( $sth->fetch() )  {
  133.           .....
  134.           $myhtml_2 = $myhtml_2 .  TR( {-valign=>'top', -bgcolor=>'#FFFFFF'},
  135.                td({-align=>'left', -width=>20},
  136.                div({-id=>"div_imagen_$id_login_usu"},
  137.                 img({-name=>'login_' . $id_login_usu ,
  138.                     -id=>'login_' . $id_login_usu ,
  139.                     -src=>"/images/ico_desplegar_on.gif",
  140.                     -border=>0,
  141.                     -value=> $id_login_usu ,
  142.                     -onClick=>"load_sesiones(['login_$id_login_usu','fecha_inicio_i', 'fecha_fin_i','sid'],['div_sesiones_$id_login_usu', 'div_imagen_$id_login_usu'],'POST')"})  )),
  143.  
  144.                td({-align=>'left'},  " &nbsp;" . $apellido_usu . ', ' . $nombre_usu),
  145.                td({-align=>'left'}, $razon_social ),
  146.                td({-align=>'center'}, $cant_sesiones ),
  147.                td({-align=>'center'}, $fecha_ultima_sesion) );
  148.                
  149.                
  150.           $myhtml_2 = $myhtml_2 .  TR( td({-colspan=>5, -class=>'tabla'},
  151.                                     div({-id=>"div_sesiones_$id_login_usu"})));
  152.  
  153.  
  154.           $myhtml_2 = $myhtml_2 .  TR( td({-colspan=>5},'&nbsp;'));
  155.  
  156.          $i = $i + 1;
  157.       }# END while
  158.  
  159.       ........
  160.   return ($myhtml_2);
  161.  
  162.  }
  163.  
  164.  
  165.  
  166. #-------------------------------------------------------------------------------
  167. #  Función llama a generate_html_2() y obtiene todo el código HTML RESULTADO de
  168. # lo que se quiere consultar a desplayar
  169. #-------------------------------------------------------------------------------
  170. sub show_html_2() {
  171.         my $tmphtml = generate_html_2();
  172.         my $myhtml_2 = <<EOHTML_2;
  173.         $tmphtml
  174. EOHTML_2
  175.         return($myhtml_2);
  176. }
  177.  
  178.  
  179.  
  180.  
  181. #  AJAX - Función que desplaya usuarios dependiendo del tipo de usuario seleccionado
  182. #-----------------------------------------------------------------------------------
  183.  sub load_usuarios {
  184.   my $tipo_usuario_abm = shift;
  185.  
  186.   my $myhtml;
  187.  
  188.   %asoc_usuarios = ('-1'=>"   Todos ");
  189.   my $ref =  $dbh_i->selectall_arrayref(" SELECT e.codent, e.razsoc " .
  190.                                            " FROM  entidad e, vendcli vc ," .
  191.                                            " usuarios u " .
  192.                                            ...... );
  193.  
  194.   ${$_}[1]=~ tr/áéíóúüñçÁÉÍÓÚÜÑÇ/aeiouuncAEIOUUNC/;
  195.   foreach (@$ref) {$asoc_usuarios{${$_}[0] . '_S'} = ${$_}[1]; }
  196.   (@asoc_usuarios) = sort { $asoc_usuarios{$a} cmp $asoc_usuarios{$b}}  keys %asoc_usuarios;
  197.  
  198.     $myhtml = $myhtml .  scrolling_list(-name=>"id_tipo_usuario_abm",
  199.                               -id=>"id_tipo_usuario_abm",
  200.                               -override=>1,
  201.                               -default=>$id_tipo_usuario_abm,
  202.                               -size=>1,
  203.                               -value=>\@asoc_usuarios,
  204.                               -labels=>\%asoc_usuarios,
  205.                               -class=>'texto_form');
  206.   .....
  207.  
  208.         return($myhtml);
  209.  
  210. }
  211.  
  212.  
  213. #-------------------------------------------------------------------------------
  214. #  AJAX - Función que desplaya el detalle de las sesiones del usuario
  215. #-------------------------------------------------------------------------------
  216.  
  217. sub load_sesiones {
  218.  
  219.  my $id_login = shift;
  220.  my $fecha_inicio_i = shift;
  221.  my $fecha_fin_i = shift;
  222.  
  223.  my $myhtml_2;
  224.  my $myhtml_3;
  225.  
  226.   my $query = " SELECT  TO_CHAR(se.fecha_inicio_sesion,'%d/%m/%Y %I:%M:%S %p')" .
  227.               " FROM sesiones_h se " ........ ;
  228.  
  229.   print $query if $DEBUG;
  230.   my $sth = $dbh_i->prepare($query) or die "ERROR prepare $query ";
  231.   $sth->execute() or die "ERROR execute $query ";
  232.  
  233.   my ($fecha);
  234.   my @cols = (\$fecha);
  235.  
  236.   $sth->bind_columns(undef, @cols);
  237.   $sth->{ ChopBlanks } = 1;
  238.  
  239.   my $count = 0;
  240.  
  241.   while ($sth->fetch()) {
  242.  
  243.        $myhtml_2 = $myhtml_2 .  $fecha .  ' - '  ;
  244.  
  245.   } # end While
  246.  
  247.  
  248.    $myhtml_3 = $myhtml_3 . img({-name=>'login_' . $id_login ,
  249.                     -id=>'login_' . $id_login ,
  250.                     -src=>"/images/ico_desplegar_off.gif",
  251.                     -border=>0,
  252.                     -value=> $id_login ,
  253.                     -onClick=>"limpiar_sesiones(['login_$id_login','sid'],['div_sesiones_$id_login', 'div_imagen_$id_login'],'POST')"});
  254.  
  255.    return($myhtml_2, $myhtml_3);
  256. }
  257.  
  258.  
  259. #-------------------------------------------------------------------------------
  260. #  AJAX - Función limpia el detalle desplayado y cambia la imagen mostrada
  261. #-------------------------------------------------------------------------------
  262.  
  263. sub limpiar_sesiones {
  264.   my $id_login_usu = shift;
  265.  
  266.   my $myhtml_2 = '&nbsp;' ;
  267.   my $myhtml_3;
  268.  
  269.   $myhtml_3 = $myhtml_3 .  img({-name=>'login_' . $id_login_usu ,
  270.                     -id=>'login_' . $id_login_usu ,
  271.                     -src=>"/images/ico_desplegar_on.gif",
  272.                     -border=>0,
  273.                     -value=> $id_login_usu ,
  274.                     -onClick=>"load_sesiones(['login_$id_login_usu','fecha_inicio_i', 'fecha_fin_i','sid'],['div_sesiones_$id_login_usu', 'div_imagen_$id_login_usu'],'POST')"});
  275.  
  276.  return($myhtml_2, $myhtml_3);
  277. }
Coloreado en 0.010 segundos, usando GeSHi 1.0.8.4
Lor
Perlero nuevo
Perlero nuevo
 
Mensajes: 187
Registrado: 2005-04-28 05:47 @282

Re: Ajax, Bucle, Llamado a función

Notapor explorer » 2009-11-17 10:37 @484

Aún no me queda muy claro que sea necesario crear objetos CGI::Ajax de esa manera, pero en fin... lo miraré más adelante.

En cuanto al código, solo indicarte que
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use CGI ':all';
use CGI qw/:standard *table/;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

lo puedes dejar en
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
use CGI qw/:all *table/;
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


También,
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
      my $pjx = new CGI::Ajax('load_usuarios' => \&load_usuarios);
      $pjx->register('load_sesiones' => \&load_sesiones);
      $pjx->register('limpiar_sesiones' => \&limpiar_sesiones);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

por
Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
        my $pjx = CGI::Ajax->new(
            load_usuarios    => \&load_usuarios,
            load_sesiones    => \&load_sesiones,
            limpiar_sesiones => \&limpiar_sesiones,
        );
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14482
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Avanzado

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado