• Publicidad

Subrutina Ajax dentro de otra

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Subrutina Ajax dentro de otra

Notapor calcifer1990 » 2011-10-03 10:21 @473

Hola,

El problema es el siguiente: utilizo una subrutina de Ajax para mostrar los resultados de una consulta, hasta aquí no hay ningún problema, pero necesito implementar dentro de esta subrutina otra para eliminar un registro, pero no funciona y no sé cómo hacer la implementación del nuevo objeto cgi.

Este es el código de la implementación.

#implementación
my ($cgi) = new CGI;
my ($pjx) = new CGI::Ajax( 'consultaUsuarios' => \&consultaUsuarios);
my ($pjx2) = new CGI::Ajax( 'eliminarUsuario' => \&eliminaUsuario);

# Desplegamos el HTML
print $pjx->build_html( $cgi, \&mostrarPagina );


De antemano, muchas Gracias
calcifer1990
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2011-10-03 10:15 @468

Publicidad

Re: Subrutina Ajax dentro de otra

Notapor explorer » 2011-10-03 11:46 @532

Bienvenido a los foros de Perl en español, calcifer1990.

¿No podrías llamar a eliminaUsuario() desde dentro de consultaUsuarios()?

De todas maneras, el código que muestras es la definición de dos subrutinas independientes, que se dispararán por dos métodos javascript distintos ('consultaUsuarios' y 'eliminarUsuario').

Desde el código JavaScript podrías disparar 'eliminarUsuario' si se da alguna condición después de ejecutar 'consultaUsuarios'.

O como he dicho antes, desde dentro de la ejecución de consultaUsuarios(), en Perl, si un registro cumple la condición, eliminarle directamente, antes de devolver el HTML al usuario.
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Subrutina Ajax dentro de otra

Notapor calcifer1990 » 2011-10-03 12:34 @565

Hola, explorer.

La verdad, no te entiendo muy bien, así que te voy a explicar más detalladamente el problema.

Tengo un script inicial en el cual por medio de un filtro muestro los datos de los usuarios; para mostrar los resultados del filtro en la parte inferior del script utilizo una subrutina.

my ($pjx) = new CGI::Ajax( 'consultaUsuarios' => \&consultaUsuarios);

Al cargar los usuariosconsultados en esta subrutina tengo un botón que me permite "eliminar" el usuario de la base de datos.

Lo hago por medio de otra subrutina, pero no sé cómo desplegar esta ya que no funciona. Al mirar los errores del JavaScript dice que la función eliminarUsuario,

my ($pjx2) = new CGI::Ajax( 'eliminarUsuario' => \&eliminaUsuario);
calcifer1990
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2011-10-03 10:15 @468

Re: Subrutina Ajax dentro de otra

Notapor explorer » 2011-10-03 14:43 @655

Prueba con esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $pjx = new CGI::Ajax(
  2.     'consultaUsuarios' => \&consultaUsuarios,
  3.     'eliminarUsuario'  => \&eliminaUsuario,
  4. );
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


(sacado del ejemplo pjx_chained.pl, en la carpeta scripts/)
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14486
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Subrutina Ajax dentro de otra

Notapor calcifer1990 » 2011-10-05 07:39 @360

Hola explorer,

Muchas gracias por contestar. Adicioné el código que me dijiste pero ocurre el siguiente error.

Problem with code: Undefined subroutine &main::eliminaCliente called at c:/Perl/site/lib/CGI/Ajax.pm line 1145.
calcifer1990
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2011-10-03 10:15 @468

Re: Subrutina Ajax dentro de otra

Notapor calcifer1990 » 2011-10-05 08:13 @384

Ya esta corregido el error. Simplemente fue un error de distracción y escribí de forma diferente el nombre de la subrutina. :)

Te lo agradezco mucho, explorer.
calcifer1990
Perlero nuevo
Perlero nuevo
 
Mensajes: 26
Registrado: 2011-10-03 10:15 @468


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados