Perl en Español

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

Sesiones - Ajax

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto
Mensaje Mie Jun 25, 2008 4:36 am
Lor
Perlero Nuevo
Perlero Nuevo
Registrado: 28 Abr 2005
Mensajes: 88
Ubicación: Argentina, Santa FE
Sesiones - Ajax Responder citando

Estoy trabajando con CGI::Session y CGI::Ajax. Tengo una aplicación con combos(Select) cuyos datos a desplayar dependen uno de la selección hecha en el otro. La carga de los combos es dinámica y dependen de consultas a una base MYSQL.

La aplicación usando Ajax funciona, pero cuando le incorporo la parte de sesiones deja de funcionar. La sesión NO la trabajo con Cookies, obtengo un id de session $sid, y luego lo envío entre una aplicación y otra como parámetro. Uso formularios method post y entre cada aplicación envío la variable session como un hidden.

Cuando Ajax hace la llamada asíncrona, ¿tengo que incorporar aquí algo relacionado a sesiones o debería ser algo transparente?

Bueno , les agradecería una ayuda o algún link donde pueda obtener mayor información,

¡¡¡ Saludos, y GRACIAS !!!
Mensaje Mie Jun 25, 2008 6:46 am
kidd
Creador de Perl en Español
Creador de Perl en Español
Registrado: 15 Oct 2003
Mensajes: 1361
Ubicación: México
Responder citando

Hola,

Si pones ejemplos del código que estás usando por el momento podríamos ayudarte más.

Saludos
Mensaje Jue Jun 26, 2008 7:07 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 3860
Ubicación: Valladolid, España
Responder citando

Esto es lo que he podido recuperar de un cache de google, a punto de desaparecer.

Perl:
#!/usr/bin/perl -w -T
## ######### PROJECT NAME : ##########
##
## sample.pl for sample Perl/Ajax in /var/www/perl/database
##
## ######### PROJECT DESCRIPTION : ###
##
## Ajax and CGI::session
##
## ###################################
##
## Made by husianycia cedric
## Login   <husiana@intellique.com>
##
## Started on  Wed Nov 30 20:31:13 2005 husianycia cedric
## Last update Wed Nov 30 21:44:04 2005 husianycia cedric
##
## ###################################
##

## ###################################
## Declaration de librairies

use   strict;
use   CGI qw(:standard);
use   CGI::Ajax;
use   CGI::Session;

## ###################################
## Declaration de Variables

   ## Declaration de l'objet CGI
our   $cgi;
   ## Declaration de l'objet Session
our   $session;

## ###################################
## Creation d'une session

sub   new_session {
    my $cgi      = shift;
   
    my $directory   = "/tmp";

    my $session      = new CGI::Session( undef, $cgi,
                   { Directory => $directory ,
                     'new_session' => 'false' } );
   
    return $session;
}

## ###################################
## Ajout dans une sessions

sub   set_session {
    my $session   = shift;
    my $name   = shift;
    my $value   = shift;
   
    $session->param(-name => $name, -value => $value);
   
    return 0;
}

## ###################################
## Recuperation dans une session

sub   get_session {
    my $session   = shift;
    my $name   = shift;
   
    return $session->param(-name => $name);
}

## ###################################
## Creation de l'html

sub   create_html {
    my $html   = $cgi->start_html(-title=>'Sample',
               -author=>'husiana',
               -bgcolor=>'#00FF00',
               -text=>'#000000',
               -link=>'#0000FF',
               -vlink=>'#0000FF',
               -alink=>'#0000FF');

    my $sess_id   = $session->id();
   
    $html.= "<input type=\"hidden\" id=\"$sess_id\" name=\"$sess_id\" value=\"$sess_id\"><input type=\"text\" name=\"txt\" id=\"txt\" onKeyUp=\"callback( [\'txt\', \'$sess_id\'], [\'result_div\'] ); return true;\">";
   
    $html .= "<br><center><div id=\"result_div\"></div></center>";
    $html .= $cgi->end_html();

    return $html;
}

## ###################################
## Ajax callback

sub   callback {
    my $input   = shift;
    my $cgi_id   = shift;

    my $ret   = "";
   
    my $session   = new_session($cgi_id);

    my $login   = get_session($session, "login");

    $ret .= "Login : $login<br>Input : $input";

    return $ret;
}

## ###################################
## main

sub   main {
   
    $cgi   = new CGI;
   
    $session   = new_session($cgi);

    set_session($session, "login", "toto_42");
   
    my $pjx   = new CGI::Ajax( 'callback' => \&callback );
   
    my $var   = $pjx->build_html( $cgi, \&create_html );

    print $var;
}

## ###################################
## Appel du main

main();
Publicar nuevo tema   Responder al tema    Foros de discusión -> Experto Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group