Foros del Web » Programando para Internet » PHP »

como pasar un array por formulario

Estas en el tema de como pasar un array por formulario en el foro de PHP en Foros del Web. hola tengo una gran duda.... estoy haciendo un mini maillist para una pequeña organización, la idea es que ellos puedan segmentar los correos segun los ...
  #1 (permalink)  
Antiguo 09/01/2006, 18:31
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 2 meses
Puntos: 3
como pasar un array por formulario

hola

tengo una gran duda....

estoy haciendo un mini maillist para una pequeña organización, la idea es que ellos puedan segmentar los correos segun los grupos de usuarios que tengan, esta parte ya esta resuelta: tengo una base de datos con los grupos definidos y un id que los identifica.

ahora en el formulario para enviar correo hago una lista de los grupos que tengo:
Código PHP:
//pedir la lista de grupos existentes
    
$squery="SELECT id, ngrupo FROM correos ORDER BY id";
    
$iquery=mysql_query($squery,$ilink);
    if (
$iquery>0) {
    
$irow=0;
    
$ilastrow=mysql_num_rows($iquery);
     while (
$irow<$ilastrow) {
    
$id=mysql_result($iquery,$irow,"id");
    
$nombre_grupo=mysql_result($iquery,$irow,"ngrupo");
echo 
"\n<input type=\"checkbox\" name=\"seleccion[".$id."]\" value=\"".$id."\">"
."<a href=\"?accion=editarid&&id=".$id."\" title=\"editar grupo ".$nombre_grupo."\">".$nombre_grupo."</a>"
."<br />";
  
//repetir segun sea necesario
  
$irow++;
}
//termina while
}//termina if iquerry
//termina de pedir los grupos 
esta lista la genero en forma de checkbox, asi tengo tantos checkbox como grupos tenga....

mi problema es que al momento de procesar el formulario no se como pasar este array a el siguiente script pues para pasarlo necesito forzosamente otro array $_POST[];

si alguien me puede dar una idea de como hacer esto lo agradecería mil...

actualmente en el script siguiente estoy intentando escribir lo que pasa por este array pero sólo me da un mensaje que dice Array
echo $_POST['seleccion'];

lo que yo necesito es que dependiendo de lo elegido me de como resultado

1,2,4,5 << por ejemplo...

para así hacer un querry a la base de datos pidiendo los correos que corresponden a estos id's.

de antemando gracias, espero haberme explicado.
  #2 (permalink)  
Antiguo 09/01/2006, 19:15
Avatar de KarQ  
Fecha de Ingreso: septiembre-2005
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Envíalos separados por coma en el mismo índice del $_POST y luego lo conviertes en array con un explode("," , $_POST['indice']);
__________________
KarQ - xC
mi weblog en: http://www.monochromatic.es
  #3 (permalink)  
Antiguo 09/01/2006, 19:22
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 2 meses
Puntos: 3
ups, no pesque la idea!!!!... podrías detallar un poco esa técnica???

tomando en cuenta que no soy un experto en php!!!

gracias.
  #4 (permalink)  
Antiguo 09/01/2006, 19:36
Avatar de KarQ  
Fecha de Ingreso: septiembre-2005
Mensajes: 88
Antigüedad: 12 años, 3 meses
Puntos: 1
Especificando

Veamos, la idea es la siguiente:

Al enviar el form a través del $_POST lo índices que se crean son iguales a los del parámetro name del elemento en cuestión del form, eso está claro.

si llegas a obtener como bien has dicho antes el formulario y la cadena de resultados de los checkboxes de la forma 1,2,4,6, por ejemplo lo procesaríamos así:

Código PHP:
$array_resultante explode("," $_POST['array_checkboxes']); 
y $array_resultante conendría un array con los índices obtenidos al parsear.

Cita:
$array_resultante[0] = 1
$array_resultante[1] = 2
$array_resultante[2] = 4
$array_resultante[3] = 6
Es bastante sencillo, espero que te sirva, sino lo vemos desde otro punto de vista.

Un saludo
__________________
KarQ - xC
mi weblog en: http://www.monochromatic.es
  #5 (permalink)  
Antiguo 09/01/2006, 19:58
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 2 meses
Puntos: 3
ok esta parte la entiendo, sin embargo al ser $array_resultante un nuevo array obtengo el mismo mensaje Array

la parte que no entendi fue la otra, la de convertír este array en una lista simple para hacer una querry en la base de datos...

buscando por ahi encontre estas soluciones:

la primera juega un poco con serialize(); y unserialize();, pero no funciona en mi caso:

http://www.evolt.org/article/Storing..._PHP/18/60222/

la segunda si esta mucho mas compleja:
http://www.phpbuilder.com/columns/la...3?print_mode=1

se que puede ser muy fácil sin embargo yo no soy programador, de cualquier manera gracias....

saludos y suerte.
  #6 (permalink)  
Antiguo 09/01/2006, 21:30
Avatar de Quest  
Fecha de Ingreso: diciembre-2002
Ubicación: Santiago
Mensajes: 129
Antigüedad: 15 años
Puntos: 2
en este caso no seria explode... sino que seria implode..
__________________
http://victorsanmartin.com
Web Developer
http://www.guiasitios.cl
  #7 (permalink)  
Antiguo 10/01/2006, 05:32
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
Tienen también una FAQ al respecto:

http://www.forosdelweb.com/showthrea...072#post262072

Un saludo,
  #8 (permalink)  
Antiguo 10/01/2006, 16:16
Avatar de fullmental  
Fecha de Ingreso: octubre-2004
Ubicación: México DF, Xochimilco
Mensajes: 593
Antigüedad: 13 años, 2 meses
Puntos: 3
cómo dijo Quest:

Cita:
Iniciado por Quest
en este caso no seria explode... sino que seria implode..

era exactamente ese caso pero con implode....

muchas gracias!!!
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 22:03.