• Publicidad

Menú desplegable dinámico (MySQL)

Preguntas y comentarios relacionadas con HTML y CSS.

Menú desplegable dinámico (MySQL)

Notapor luisjf » 2011-06-14 11:00 @500

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
Avatar de Usuario
luisjf
Perlero nuevo
Perlero nuevo
 
Mensajes: 15
Registrado: 2011-05-11 17:57 @790

Publicidad

Re: Menú desplegable dinámico (MySQL)

Notapor explorer » 2011-06-14 12:49 @576

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 & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Menú desplegable dinámico (MySQL)

Notapor luisjf » 2011-06-15 13:50 @618

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:

Sintáxis: [ Descargar ] [ Ocultar ]
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.  
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4
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: Menú desplegable dinámico (MySQL)

Notapor explorer » 2011-06-15 14:22 @640

Esta es mi versión:
Sintáxis: [ Descargar ] [ Ocultar ]
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.  
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4

sale:
Sintáxis: [ Descargar ] [ Ocultar ]
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>
Coloreado en 0.000 segundos, usando GeSHi 1.0.8.4
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España

Re: Menú desplegable dinámico (MySQL)

Notapor cjbustos » 2012-12-14 22:24 @975

Me ha servido la información. En lo que estoy perdido es en encontrar la forma de que la selección dentro de la lista la pueda utilizar para otra operación, por ejemplo, para cargar del dato a un carrito de compras, ¿alguna idea de cómo hacerlo?
Muchas gracias, excelente este sitio, ¡Felicitaciones!
Avatar de Usuario
cjbustos
Perlero nuevo
Perlero nuevo
 
Mensajes: 2
Registrado: 2012-07-09 17:11 @757

Re: Menú desplegable dinámico (MySQL)

Notapor explorer » 2012-12-15 07:13 @342

Bienvenido a los foros de Perl en Español, cjbustos.

Bueno, como las páginas y contenidos se generan de forma dinámica, puedes hacer eso mismo con la parte que rellena el carro de la compra...
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a HTML

¿Quién está conectado?

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