Jue Mar 23, 2006 10:43 am
|
 |
rookie
Perlero Nuevo

|
Registrado: 01 Mar 2006
Mensajes: 39
|
|
| Obtener datos de Checkbox para una consulta |
|
|
Saludos a todos.
Tengo un Formulario en el que utlizo checkbox para que el usuario pueda elegir entre varias opciones, de las elegidas tengo que tomar un valor asociado con el checkbos como por ejemplo "id_producto" para realizar una consulta SQL con ese dato asociado, pero solo de aquellos checbox elegidos.
Como puedo tomar ese dato asociado de aquellas casillas elegidas??
ALgun link con documentacion que me recomienden??
Gracias por su ayuda. Saludos. |
|
|
|
Jue Mar 23, 2006 11:06 am
|
 |
explorer
Moderador

|
Registrado: 24 Jul 2005
Mensajes: 4036
Ubicación: Valladolid, España
|
|
|
|

Vie Mar 24, 2006 5:01 am
|
 |
macgregor
Perlero Frecuente

|
Registrado: 09 Dic 2004
Mensajes: 117
Ubicación: españa
|
|
| formulario con varios checkbox |
|
|
Hola.
Supongamos que en el formulario creas por este orden una serie parámetros.
5 parámetros de diferentes tipos.
10 de tipo checkbox.
y 5 más, por ejemplo de tipo hidden.
Para el siguiente código tendrás que utilizar el módulo CGI.
| Código: |
| use CGI qw/:standard/; |
Podrías meter todos los parámetros en un vector.
Y luego hacer un bucle como este:
| Código: |
for (my $i=4;$i<$#params-5;$i++)
{
if (param($params[$i]) eq "nombrecheckbox1") {código}
if (param($params[$i]) eq "nombrecheckbox2") {código}
......
} |
En el bucle no pongo que $i<20 ya que sería un error, a pesar de que tu creas 20 parámetros.
El motivo es que el formulario nunca envia todos los checkbox.
Solamente envia aquellos que estan marcados.
Por lo tanto se variará la longitud del vector que se ha recibido en función del número de checkbox seleccionados.
Yo utilizo este método para generar consultas SQL.
De esta manera por ejemplo le pido al usuario que me diga
los campos que quiere obtener en el resultado de la consulta.
Nota: he puesto "nombrecheckbox1" ya que en estos casos le asigno a los checkbos el mismo "valor" al name y al value.
Espero que esto te aclare una posible forma de resolver tu problema. |
|

Powered by phpBB © 2001, 2005 phpBB Group
|