• Publicidad

Error al imprimir variable Perl en HTML

Preguntas y comentarios relacionadas con HTML y CSS.

Error al imprimir variable Perl en HTML

Notapor luisjf » 2011-06-15 15:00 @667

Hola, buenas tardes,

Mi caso es el siguiente: mi sistema consta de dos pantallas; una en la cual, a través de un formulario recopilo información para procesarla, y luego en la segunda se muestra un reporte.

En la primera pantalla estoy recogiendo la data de mi base de datos en MySQL con la ayuda del módulo DBI y la guardo en una variable. El problema está en que cuando el sistema va a mi pantalla de salida, el mismo requiere imprimir por pantalla una de las variables tomadas (por un select) en la primera pantalla y comúnmente esta variable está compuesta por más de una palabra (por ejemplo: "Ciudad capital").

El problema se presenta porque cuando imprimo por pantalla, solamente se muestra la primera frase (en nuestro ejemplo: "Ciudad") y no consigo el porqué de esta situación.

La recolección e impresión de dicha variable, de forma "muy reducida", la hago a través de:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. my $var = $form->param("namedelselect");
  2. print "$var";
  3.  
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Cualquier información con la que me puedan dar luces la sabré agradecer.

Nota: cabe resaltar que la misma información que extraigo de la base de datos y muestro en el select para que el usuario escoja la opción sí es completa. Solo en la impresión luego del "$form->param..." es que se corta dicha frase.
personal: debian 6 (squeeze) with perl v5.10.1
laboral: canaima 3 with perl v5.10.1
Avatar de Usuario
luisjf
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2011-05-11 17:57 @790

Publicidad

Re: Error al imprimir variable Perl en HTML

Notapor kidd » 2011-06-15 15:17 @678

El problema puede estar en varios lugares, así que se necesitarían varios detalles más para poder identificar el problema.

* ¿Se está guardando la variable correctamente en tu base de datos?
* Si se está guardando correctamente, entonces ¿podrías mostrar el código con que haces el output?
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Error al imprimir variable Perl en HTML

Notapor luisjf » 2011-06-15 16:03 @711

Bueno voy a sintetizar la información intentando dar la mayoría de detalles:

De la siguiente forma recupero la data de mi BD, y con esa data creo un Select:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use CGI;
  3. use DBI;
  4. $dbh = DBI->connect(
  5.     "DBI:mysql:db",
  6.     "xxxx",
  7.     'xxxx',
  8.     { mysql_enable_utf8 => 1 }
  9.     );
  10. print "Content-Type: text/html\n\n";
  11. print<<HTML;
  12. <html>
  13. <head>HEAD</head>
  14. <body>
  15. <form name="operar" method="post" action="/cgi-bin/salida.pl">
  16. <select name="name">
  17. HTML
  18. $sth = $dbh->prepare("select name from tabla");
  19. $sth->execute;
  20. while(($name,$valid_id)=$sth->fetchrow())
  21.     {
  22.     print"<option value=$name>$name</option>"
  23.     }
  24. print<<HTML2;            
  25. <input name="igual" value="Buscar" type="submit">
  26. </form>
  27. </body>
  28. </html>
  29. HTML2
  30.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

ignorando todo el manejo del resto de la data (que he omitido). Me interesa que en la "salida.pl" el sistema muestre entre otras cosas la opción que seleccionó el usuario. El código que tengo para esa impresión es el siguiente:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use CGI;
  3. #print"Content-type: text/html\n\n";
  4. my $form = new CGI;
  5. my $name = $form->param("name");
  6. print $form->header;
  7. print "<html>\n<head>\n";
  8. print "</head>";
  9. print "<body><p>La opción es $name</body>";
  10. print "</html>";
  11. exit;
  12.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

es en la impresión de esa variable donde solo muestra la primera palabra de esa opción porque en la primera pantalla, en el select, sí muestra la frase completa.
personal: debian 6 (squeeze) with perl v5.10.1
laboral: canaima 3 with perl v5.10.1
Avatar de Usuario
luisjf
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2011-05-11 17:57 @790

Re: Error al imprimir variable Perl en HTML

Notapor kidd » 2011-06-15 16:34 @732

El problema está en el html saliente. Debes de cambiar la siguiente línea:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print"<option value=$name>$name</option>"
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


por

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print"<option value=\"$name\">$name</option>"
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


El problema es que como tienes ahora el html resultante te da el siguiente valor:

Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <option value=Ciudad capital>Ciudad capital</option>
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4


Debido al espacio, 'capital' es tomado como un atributo html. Al hacer el cambio vamos a tener de forma correcta:

Sintáxis: [ Descargar ] [ Ocultar ]
Using html4strict Syntax Highlighting
  1. <option value="Ciudad capital">Ciudad capital</option>
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
Uriel Lizama Perl programmer fundador de Perl en Español
Perl Programming Language
Avatar de Usuario
kidd
Creador de Perl en Español
Creador de Perl en Español
 
Mensajes: 1166
Registrado: 2003-10-15 16:52 @744
Ubicación: México

Re: Error al imprimir variable Perl en HTML

Notapor luisjf » 2011-06-16 08:35 @399

He probado la opción que me da kidd y ¡funcionó perfectamente! ¡muchas gracias, compañero! ¡Tenía tiempo sin estar en un foro tan activo y útil! ¡Muchas gracias!
personal: debian 6 (squeeze) with perl v5.10.1
laboral: canaima 3 with perl v5.10.1
Avatar de Usuario
luisjf
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2011-05-11 17:57 @790


Volver a HTML

¿Quién está conectado?

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