Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » HTML » Error al imprimir variable Perl en HTML  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 5 mensajes ] 
 
Nota 2011-06-15 15:00 @667
Avatar de Usuario
Perlero Nuevo
Registrado: 2011-05-11 17:57 @790
Mensajes: 15
Error al imprimir variable Perl en HTML
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:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. my $var = $form->param("namedelselect");
  2. print "$var";
  3.  


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


Nota 2011-06-15 15:17 @678
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Re: Error al imprimir variable Perl en HTML
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


Nota 2011-06-15 16:03 @711
Avatar de Usuario
Perlero Nuevo
Registrado: 2011-05-11 17:57 @790
Mensajes: 15
Re: Error al imprimir variable Perl en HTML
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:

Syntax: [ Download ] [ Hide ]
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.  

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:

Syntax: [ Download ] [ Hide ]
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.  

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


Nota 2011-06-15 16:34 @732
Avatar de Usuario
Creador de Perl en Español
Registrado: 2003-10-15 16:52 @744
Ubicación: México
Mensajes: 1163
Re: Error al imprimir variable Perl en HTML  RESUELTO
El problema está en el html saliente. Debes de cambiar la siguiente línea:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. print"<option value=$name>$name</option>"


por

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. print"<option value=\"$name\">$name</option>"


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

Syntax: [ Download ] [ Hide ]
Using html4strict Syntax Highlighting
  1. <option value=Ciudad capital>Ciudad capital</option>


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

Syntax: [ Download ] [ Hide ]
Using html4strict Syntax Highlighting
  1. <option value="Ciudad capital">Ciudad capital</option>

_________________
Uriel Lizama Perl programmer fundador de Perl en Español


Nota 2011-06-16 08:35 @399
Avatar de Usuario
Perlero Nuevo
Registrado: 2011-05-11 17:57 @790
Mensajes: 15
Re: Error al imprimir variable Perl en HTML
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


Responder al tema  [ 5 mensajes ] 

Reglas del Foro
No puedes abrir nuevos temas en este Foro
No puedes responder a temas en este Foro
No puedes editar tus mensajes en este Foro
No puedes borrar tus mensajes en este Foro
No puedes enviar adjuntos en este Foro

Publicidad

Socializa

Síguenos por Twitter

Suscríbete GRATUITAMENTE al Boletín de Perl en Español

Saltar a:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Traducción al español por Huan Manwë para phpbb-es.com
phpBB SEO