Perl en Español

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

Pregunta sobre PopUp

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio
Mensaje Vie Feb 15, 2008 7:37 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Pregunta sobre PopUp Responder citando

He estado investigando tanto en esta página como en otras sobre la utilización de ventanas emergentes, debido a que un cliente desea que los usuarios al dar clik sobre un vehículo en particular, salgan sus características en una nueva ventana, claro está con un tamaño especifico. Seguí varios de los ejemplos planteados en dichas páginas incluyendo esta, pero sin resultados positivos, desearía saber cómo se debe poner correctamente el JavaScript en Perl para que funcione correctamente, ya que me da un error de búsqueda:



Lo que me quiere decir que no está tomando en cuenta las especificaciones dadas a la función del JavaScript.

Ahora bien, de los que he usado, este lo crea un generador automático y en pruebas con HTML y funcionó

http://www.contadorwap.com/popups.php

Javascript:
<HEAD>

<SCRIPT LANGUAGE="JavaScript">
<!-- Begin
function popUp(URL) {
day = new Date();
id = day.getTime();
eval("page" + id + " = window.open(URL, '" + id + "', 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=0,width=800,height=600');");
}
// End -->
</script>


<!-- SEGUNDO PASO: Utilice el siguiente link para abrir la nueva ventana -->

<A HREF="javascript&#058;popUp('http://www.800vehiculos.com/cgi-bin/catalogoviewv.pl?listado=800vehiculos1&codigo=000111&activar=&nombreu=prueba2007')">Abrir Ventana Pop Up</A>

Ahora bien, se puede adaptar este código a Perl:

Perl:
print "<html><title>Catalogo de \U$empresa</title>\n";
print "<style TYPE=\"text/css\">\n";
print "<!--\n";
print "a \{ text-decoration: none; color:$colorlink; \}\n";
print "a:hover\{ text-decoration: underline; color:$colorlink; \}\n";
print "b \{ font-size:11px; color:$colortitulo; font-family: Arial;\}\n";
print "strong \{ font-size:11px; color:$colortitulo; font-family: Arial;\}\n";
print "body \{ font-size:11px; color:$colortexto; font-family: Arial\; }\n";
print "td \{ font-size:11px; color:$colortexto; font-family: Arial\; }\n";
print "// -->\n";
print "</style>\n";
print "<base target=derecho>\n";
print "<body topmargin=10  bgcolor=\"$colorfondo\" background=\"../imagenes/$listado-background.jpg\"><center>\n";

&Usuario;
$contador=0;
$hallado="";

if ($servidorftp ne ""){
        $origen="categorias.dat";
        $destino="../db/$listado/temporal/$usuario-categorias.dat";
        #use Net::FTP;
        $ftp = Net::FTP->new($servidorftp, Debug => 0);
        $ftp->login($loginserver,$passwserver);
        $ftp->cwd("/db/$listado");
        $ftp->get($origen,$destino);
        $archivo_categorias=$destino;
}else{
        $archivo_categorias="../db/$listado/categorias.dat";
}
                        if ($servidorftp ne ""){
                                        $origen="productos.dat";
                                        $destino="../db/$listado/temporal/$usuario-productos.dat";
                                        $ftp->get($origen,$destino);
                                        $archivo_productos=$destino;
                        }else{
                                $archivo_productos="../db/$listado/productos.dat";
                        }

                if (-e $archivo_productos){
                                open (PRODUCTOS, "$archivo_productos") || &Error ($!, "$archivo_productos");
                        while($reng=<PRODUCTOS>){
                                chop $reng;
                                @inf=split("\t",$reng);
                                $codigo=$inf[0];
                                $descrip=$inf[1];
                    $dtecnicos=$inf[4];
                                $inactivo=$inf[5];
                                $oferta=$inf[6];
                                $exento=$inf[7];
                                $vercolores=$inf[8];
                                $vertallas=$inf[9];
                                $gru=$inf[10];
                                $sub=$inf[11];
                                $sec=$inf[12];
                                $ciu=$inf[13];
                                $tlf1=$inf[15];
                                $nomu=$inf[16];
                        if ($activar ne ""){
                                $precio=$inf[3];
                        }else{
                                $precio=$inf[2];
                        }
                                $criterio="$codigo$descrip$dtecnicos$gru$sub$sec$ciu$precio";
                                $imprimir="no";
                        #if ($criterio=~/$grupo/i && $criterio=~/$subgrupo/i && $criterio=~/$seccion/i){
                                        #$imprimir="si";
                        #}
                        if ($grupo eq $gru && $subgrupo eq $sub && $seccion eq $sec){
                                                $imprimir="si";
                        }
                        if ($criterio=~/$marca1/i && $criterio=~/$modelo1/i && $criterio=~/$ciudad1/i && $seccion eq ""){
                                        $imprimir="si";
                        }
                                $imagen1="../$listado/imagenes/t\_$codigo-1.jpg";
                                $imagen2="../$listado/imagenes/t\_$codigo-1.jpg";
                                $imagen3="../$listado/imagenes/t\_$codigo-2.jpg";
                                $imagen4="../$listado/imagenes/t\_$codigo-2.jpg";

                                if ($inactivo ne ""){
                                        $imprimir="no";
                                }
                                if ($imprimir eq "si"){

                                        $hallado="si";

                                                                                        print "<table border=1 cellpadding=0 cellspacing=0 width=95%>\n";
                                                print "<tr><td align=center bgcolor=efefef>\n";
                                                print "<table border=0 cellpadding=2 cellspacing=0 width=100%>\n";
                                                print "<tr><td align=center bgcolor=\"$colorfondo\">\n";
                                                print "<a target=derecho href=\"/cgi-bin/catalogoviewv.pl?listado=$listado\&usuario=$usuario\&codigo=$codigo\&activar=$activar\&nombreu=$nomu\">\n";
                                                print "Ver Detalles ";
                                                $img="../htdocs/$listado/detalle.gif";
                 
                                        if (-e $img){
                       $img="../$listado/detalle.gif";
                               }else{
                  $img="../img/detalle.gif";
                   }
                                                print "<img src=$img align=absmiddle border=0>";

                                                print "</a>\n";
                                                print "<tr><td align=center bgcolor=white height=1>\n";
                                                print "<tr><td align=center bgcolor=c0c0c0 height=1>\n";
                                                print "<tr><td align=center bgcolor=555555 height=1>\n";
                                        if ($oferta ne ""){
                                                print "<tr><td align=center bgcolor=\"red\">\n";
                                                print "<b><font color=\"yellow\">OFERTA</font></b>\n";
                                        }
                                        if (-e $imagen1){
                                                print "</td></tr><tr><td align=center  bgcolor=\"white\">\n";
                                                print "<a target=derecho href=\"/cgi-bin/catalogoviewv.pl?listado=$listado\&usuario=$usuario\&codigo=$codigo\&descrip=$descrip\&precio=$precio\&activar=$activar\&nombreu=$nomu\">\n";
                                                print "<img src=\"$imagen2\" border=0></a>\n";
                                        }
                                        if (-e $imagen3){
                                                print "</td></tr><tr><td align=center  bgcolor=\"white\">\n";
                                                print "<a target=derecho href=\"/cgi-bin/catalogoviewv.pl?listado=$listado\&usuario=$usuario\&codigo=$codigo\&descrip=$descrip\&precio=$precio\&activar=$activar\&nombreu=$nomu\">\n";
                                                print "<img src=\"$imagen4\" border=0 width=100></a>\n";
                                        }
Mensaje Vie Feb 15, 2008 9:36 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
Responder citando

Yo creo que hay un error en la definición de la función popUp().
Mensaje Vie Feb 15, 2008 10:35 am
explorer
Moderador
Moderador
Registrado: 24 Jul 2005
Mensajes: 4143
Ubicación: Valladolid, España
Responder citando

En efecto... el fallo está en la colocación de los indicadores de comentarios '<!--' y '-->'.

Quítalos.
Mensaje Vie Feb 15, 2008 11:29 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Si ya lo hice y nada Sad , creo que mi error está en la colocación de la función. La pongo justo arriba del body Rolling Eyes , espero resolver este dilema Sad
Mensaje Vie Feb 15, 2008 12:07 pm
hugo11ab
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Jul 2006
Mensajes: 31
Responder citando

Aquí pongo el código que uso para abrir nuevas ventanas y la manera de cómo lo mando a llamar desde el formulario. Espero y te sirva:

Perl:
sub js2 {
$JSCRIPT=<<EOT;
<script language="JavaScript" type="text/javascript">
<!-- Hide script
//<![CDATA[

function openWin(theurl) {
  window.open(theurl ,'','toolbar=0,location=0,directories=0,status=0 menubar= 0,scrollbars=1,resizable=0,copyhistory=0,width=600,height=400, top=50,left=25');
}

//]]> End script hiding -->
</script>
EOT

}

ASI MANDO A LLAMAR LA FUNCIÓN DESDE EL FORMULARIO:

Perl:
$table1->setCell($r,6, "<a href=\"#\" onclick=\"openWin('$url?$parametros')\"><font size=1 color=red> <b>VER DETALLE<b></font></a>");
Mensaje Sab Feb 16, 2008 6:29 pm
Jenda
Perlero Frecuente
Perlero Frecuente
Registrado: 29 Oct 2007
Mensajes: 106
Ubicación: Praga, Republica Checa
Responder citando

Permítame que te doy unos recomendaciones para mejorar tus scripts. De primero esto

Perl:
print "<html><title>Catalogo de \U$empresa</title>\n";
print "<style TYPE=\"text/css\">\n";
print "<!--\n";
...


está mejor escrito como

Perl:
print qq{<html><title>Catalogo de \U$empresa</title>
<style TYPE="text/css">
<!--
...
};


o

Perl:
print <<"*END*";
<html><title>Catalogo de \U$empresa</title>
<style TYPE="text/css">
<!--
...
*END*


No hay razón para perder tiempo escapando todas las '"', añadiendo los \n y print y todo esto.

Segundo, se puede ajustar más variables en el mismo tiempo en Perl así que no tienes que escribir

Perl:
$codigo=$inf[0];
$descrip=$inf[1];
$dtecnicos=$inf[4];
...


sino que puedes usar solo

Perl:
($codigo, $descrip, $dtecnicos, ...) = @inf;


o postergar el @inf completamente y usar

Perl:
($codigo, $descrip, $dtecnicos, ...) = split("\t",$reng);


o si de verdad necesitas usar solo unos elementos de @inf puedes hacer eso

Perl:
($codigo, $descrip, $dtecnicos, ...) = @inf[0,1,4,5,6,7,8,9,10,12,13,15,16];


o

Perl:
($codigo, $descrip, $dtecnicos, ...) = @inf[0,1,4..13,15,16];


Pero la recomendación más importante es que empiezas todos tus scripts con esas dos líneas:

Perl:
use strict;
use warnings;
# y posiblemente
# no warnings 'uninitialized';


De primero te va a dar la lata mucho porque vas a tener que declarar todas las variables, pero después va a ayudar mucho con prevenir todos los tipos de faltas como letras superpuestas en nombres de variables y otras.
Mensaje Mie Feb 20, 2008 9:00 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Gracias por los tips Smile tanto a Explorer, Hugo (por fin funcionó, aunque se tarda un poquito, pero ya funciona Smile ) y Jenda (trabajo en base a otro programador que dejó la caratula construida y yo agrego nuevas cosas, pero los tips que me das me servirán para armar los otros programas propios que estoy haciendo. Gracias). Wink
Mensaje Mie Feb 20, 2008 9:30 am
mydaboin
Perlero Nuevo
Perlero Nuevo
Registrado: 22 Abr 2004
Mensajes: 59
Ubicación: Pues Aqui, Preguntando
Responder citando

Hugo, ya me dí cuenta que era mi máquina la que esta lenta, jaja, se me olvidaba que estaba subiendo archivos pesados, jeje, en las otras máquinas se ve bien y no se tarda Smile Muchas gracias
Publicar nuevo tema   Responder al tema    Foros de discusión -> Intermedio Todas las horas son GMT - 6 Horas
Página 1 de 1



Powered by phpBB © 2001, 2005 phpBB Group