Perl en Español

  1. Home
  2. Tutoriales
  3. Foro
  4. Artículos
  5. Donativos
  6. Publicidad
 
Índice general » Otros Temas » HTML » Menú desplegable dinámico (MySQL)  RESUELTO Responder al tema
Nuevo tema


Página 1 de 1  [ 4 mensajes ] 
 
Nota 2011-06-14 11:00 @500
Avatar de Usuario
Perlero Nuevo
Registrado: 2011-05-11 17:57 @790
Mensajes: 15
Menú desplegable dinámico (MySQL)
Hola, muy buenos días.

Estoy desarrollando un pequeño sistema que va a requerir una interfaz web bastante sencilla. En este caso estoy manipulando mis datos con MySQL, y precisamente para la interfaz me ha surgido la necesidad de crear un menú desplegable (drop box) que muestre información directa de la base de datos. ¿Cuál es el método más efectivo para lograrlo o con qué herramientas cuento? ¿Lo hago con código Perl o es solo HTML? Agradecería cualquier ayuda que se me pueda prestar. Muchas gracias de antemano...

Saludos

_________________
personal: debian 6 (squeeze) with perl v5.10.1
laboral: canaima 3 with perl v5.10.1


Nota 2011-06-14 12:49 @576
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10261
Re: Menú desplegable dinámico (MySQL)
Con el módulo DBI puedes recuperar la información de la base de datos.

Luego, puedes crear el contenido de la lista desplegable, y mostrarlo dentro de la página HTML, generándolo con alguno de los muchos módulos disponibles para Perl. Yo suelo usar el módulo CGI, HTML::Template o CGI::Application (pero hay muchas más).

Depende de lo compleja que quieras que sea tu aplicación.

Con CGI, por ejemplo, con la función popup_menu() se puede generar esa lista.

Hay incluso módulos que son capaces de entender el esquema de la base de datos y mostrarlo en un formulario HTML, casi de forma directa. Lo malo es que cuesta bastante personalizar la salida.

_________________
JF^D Perl programming


Nota 2011-06-15 13:50 @618
Avatar de Usuario
Perlero Nuevo
Registrado: 2011-05-11 17:57 @790
Mensajes: 15
Re: Menú desplegable dinámico (MySQL)  RESUELTO
Gracias por tu pronta respuesta, explorer; efectivamente, estuve revisando los módulos que me indicas y están muy completos, y bueno, en virtud que necesitaba algo bastante puntual y sencillo resolví haciendo estas simples líneas:

Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use CGI;
  3. use DBI;
  4. $dbh = DBI->connect( "DBI:mysql:nombredb", "xxx", 'xxx',
  5.     { mysql_enable_utf8 => 1 } );
  6. print "Content-Type: text/html\n\n";
  7. <select name="nombredelselect">
  8. $sth = $dbh->prepare("select col1 from tabla");
  9. $sth->execute;
  10. while ( ($col1) = $sth->fetchrow() ) {
  11.     print "<option value=$name>$name</option>";
  12. }
  13.  
  14.  

_________________
personal: debian 6 (squeeze) with perl v5.10.1
laboral: canaima 3 with perl v5.10.1


Nota 2011-06-15 14:22 @640
Avatar de Usuario
Administrador
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España
Mensajes: 10261
Re: Menú desplegable dinámico (MySQL)
Esta es mi versión:
Syntax: [ Download ] [ Hide ]
Using perl Syntax Highlighting
  1. #!/usr/bin/perl
  2. use CGI;
  3. use DBI;
  4.  
  5. # consulta a la base de datos
  6. my $dbh = DBI->connect(
  7.     "DBI:mysql:base_datos", 'root', 'piwuehfs1a',
  8.     { mysql_enable_utf8 => 1 },
  9. );
  10.  
  11. my $cols_ref = $dbh->selectall_arrayref('select screenName from User_');
  12.  
  13. # pasamos de un array de arrays, a solo un array
  14. my @cols = map { $_->[0] } @{$cols_ref};
  15.  
  16. # salida
  17. my $cgi = CGI->new();
  18.  
  19. print
  20.     $cgi->header(),
  21.     $cgi->start_html('Resultados'),
  22.     $cgi->start_form(),
  23.     $cgi->popup_menu(
  24.             -name   => 'nombredelselect',
  25.             -values => \@cols,
  26.         ),
  27.     $cgi->end_form(),
  28.     $cgi->end_html(),
  29.     ;
  30.  

sale:
Syntax: [ Download ] [ Hide ]
Using text Syntax Highlighting
Content-Type: text/html; charset=ISO-8859-1

<!DOCTYPE html
        PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
         "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-US">
<head>
<title>Resultados</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
</head>
<body>
<form method="post" action="http://localhost" enctype="multipart/form-data">
<select name="nombredelselect" >
<option value="10118">10118</option>
<option value="abadia">abadia</option>
<option value="adrianperez">adrianperez</option>
<option value="africa">africa</option>
<option value="visual">visual</option>
<option value="xtina">xtina</option>
<option value="xtranas">xtranas</option>
<option value="yeika">yeika</option>
<option value="zagales">zagales</option>
</select></form>
</body>
</html>

_________________
JF^D Perl programming


Responder al tema  [ 4 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