Página 1 de 1

Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-11 15:51 @702
por Negrazo
Hola, Perleros.
Tengo una duda que llevo varios días dándole vuelta y no he podido resolverla.
A ver si me explico:

En un programa de Inserción de registros (Altas) a una tabla de MySQL, tengo algo como esto:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
$sex[0] = "Masculino";
$sex[1] = "Femenino";

#  alta de alumno
print "<form action='alta3_alumnos.pl?fec=$dt&fam=$fam&nivel=$nivel&cod=$doc[0]&last1=$last1&last2=$last2&first=$first&cod=$cod&types=$types&ciclo=$ciclo&CGISESSID=$CGISESSID' ID='form1' onsubmit='return verificar();'>";
print "Alumno............:   ";
print textfield('alumno', '' ,15,25);
print "<BR>";
print "Apellidos..........:   ";
print textfield(last1, '' ,50,50);
print textfield(last2, '' ,50,50);
print "<BR>";
print "Nombre.............:   ";
print textfield(first, '' ,50,80);
print "<BR>";
print "Sexo..................:   ";
print scrolling_list(-name=>'sex', -values=>[@sex],,-size=>1);
print "<BR>";
Coloreado en 0.003 segundos, usando GeSHi 1.0.8.4


Aquí el campo 'sex' viene en una scrolling_list y el usuario es forzado a seleccionar una opción de la lista. No le queda de otra.

Pero en el programa de modificación, tengo que acceder a la tabla primero y luego presentar los datos para su posible modificación,

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
# cambios al alumno
print "<form action='cambio2_alumnos.pl?fec=$dt&fam=$fam&nivel=$nivel&cod=$cod&last1=$last1&last2=$last2&first=$first&cod=$cod&types=$types&ciclo=$ciclo&CGISESSID=$CGISESSID' ID='form1' onsubmit='return verificar($ind);'>";
#print start_form(GET,'cambio2_alumnos.pl?fec=$dt&fam=$fam&nivel=$nivel&cod=$cod&last1=$last1&last2=$last2&first=$first&cod=$cod&types=$types&ciclo=$ciclo&CGISESSID=$CGISESSID', );
print "<B><I>Fecha: " . $dt ;
print "<BR>";
print "Apellidos..........:   ";
print textfield('last1', $doc[2] ,50,50);
print textfield('last2', $doc[3] ,50,50);
print "<BR>";
print "Nombre.............:   ";
print textfield('first', $doc[1] ,50,80);
print "<BR>";
print "Sexo..................:   ";
print textfield('sexo',$doc[5] ,15,15);
print "<BR>";
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Mi pregunta es cómo puedo integrar una scrolling_list en este script para forzarlos a teclear algo que yo quiero, no lo que ellos quieran.

Puede que mi pregunta no esté en el Foro correcto, por lo que pido asesoría al respecto.

Si mi pregunta es cambiada de Foro, por favor avísenme para seguirle la pista.

Gracias.

Re: Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-11 16:45 @739
por explorer
La solución es obvia: crea el formulario de modificación de la misma manera que el formulario de creación. Es decir: si es una lista de opciones, pues así es cómo debes presentar ese campo, no como una caja de texto.

Y ya que lees el valor del campo de la base de datos, pues ese será el valor por defecto que tendrá la lista de opciones, para que en pantalla aparezca seleccionado por defecto, mostrando al usuario qué valor tiene ese campo.

Re: Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-12 10:41 @487
por Negrazo
Bien explorer, gracias por tu respuesta.

Creo que ya te entendí, en el programa de modificación:
- Primero leo de la base de datos.
- Siguiendo con este ejemplo, determino que el Sexo es = 'Femenino', por lo que le toca el indice = 1 .

- Ahora mi gran duda es cómo le hago para que en mi scrolling_list la opción 'Femenino' sea la Checked o Selected; aquí es donde se mezclan Perl, HTML y JavaScripts y no sé cómo hacerlo.

Ojalá me haya explicado bien.

Nuevamente gracias.
Negrazo

Re: Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-12 10:48 @491
por kidd
Con la opción -defaults puedes hacer que un elemento esté seleccionado de tu lista de manera predeterminada, por lo que veo en tu código, podría quedar así:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
  1. print scrolling_list(-name=>'sex', -values=>[@sex], -size=>1, -defaults=>$doc[5]);
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4


Saludos

Re: Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-12 11:34 @523
por Negrazo
Efectivamente explorer.

Ya funcionó como me lo indicaste y yo que me andaba complicando la vida con JavaScripts, no tenía ni idea de que así se pudiera hacer.

Muchas gracias y recibe un gran saludo desde Guadalajara. Mexico.

Y yo te apoyo en tu lema:

DI NO A VODAFONE!
Negrazo

Re: Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-12 11:37 @526
por Negrazo
Perdón porque en mi mensaje anterior, le agradecí a explorer y me fijé que también Kidd colaboró con una solución que me funcionó.

Quiero agradecer a ambos que son unos grandes en nuestro medio.

Saludos.

Re: Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-12 11:42 @529
por explorer
Recuerda que puedes reeditar tus propios mensajes, por si te das cuenta de que te equivocaste o te faltaba algo. Hay un botón de edición en cada mensaje.

Re: Duda de scrolling lists en un script de Perl

NotaPublicado: 2009-07-13 11:39 @527
por Negrazo
Fíjate explorer que no me había fijado en ese botón.
Ahora ya lo vi y créeme que lo voy a estar usando.

Gracias.