Foros del Web » Programando para Internet » PHP »

Como recibir valores de array de checkbox en php

Estas en el tema de Como recibir valores de array de checkbox en php en el foro de PHP en Foros del Web. Hola como recibo en un bucle el arreglo de checkbox que me envia un formulario. Voy a explicar mi proceso, en un form (form.php) cree ...
  #1 (permalink)  
Antiguo 08/08/2009, 11:38
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Como recibir valores de array de checkbox en php

Hola como recibo en un bucle el arreglo de checkbox que me envia un formulario. Voy a explicar mi proceso, en un form (form.php) cree unos 30 checkbox el name es seleccion[], antes de mandar los valores al php que envia(envio.php) lo mando a una librería js (evaluar.js) para que valide la informacion (valida captcha y checkbox seleccionado)

Ahora bien evaluar.js según ayan seleccionado los usuarios mandaran a envio.php valores que pueden ser ejemplo
seleccion[1]
seleccion[15]
seleccion[12]

o esto

seleccion[17]
seleccion[30]
seleccion[28]

claro con sus valores, mi pregunta es como recojo con un bucle este array en php

Probe lo siguiente:

$tour = $_POST['Tour'];
$n= count($tour);
$i= 0;
while ($i < $n){
$message_send = $message_send +"Seleccion".utf8_decode($_POST['seleccion'][$i])." \n";
$i++;
}

Pero en mi mensaje me llega asi, por ejemplo si seleccione 3 checkbox solo me llega una valor con un cero, ejemplo
Cita:
0 Iquitos
Me supongo es que es por el [$i] indice ya que como no se sabe que indice me mandara evaluar.js (ejemplo:12, 18, 30) no coincide con el while

Despues use foreach
Código PHP:
foreach ($_POST['seleccion'] as $id){
  
$message_send $message_send $id." \n";

Pues parece que el como deuce el indice y el valor pero ahora me viene el mensaje solamente un 0, espero que me puedan ayudar
  #2 (permalink)  
Antiguo 08/08/2009, 11:54
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Como recibir valores de array de checkbox en php

Trata de hacerlo de esta forma para ver que trae
Código PHP:
Ver original
  1. foreach($_POST["seleccion"] as $v){
  2.   echo $v . "<br />";
  3. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #3 (permalink)  
Antiguo 10/08/2009, 12:01
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Como recibir valores de array de checkbox en php

Hola Abimaelrc, gracias esto si funciona, si muestra los valores seleccionados, pero no puedo concatenar esos valores a una variable que sera enviada con el mensaje, te pongo mi script para que me puedas entender, este es mi formulario prueba http://www.peru-expeditions.com/c-prueba.php cuando se envia el mensaje lo he puesto que se muestre los valores de los checkbox que han sido seleccionado, este es mi php
Código PHP:
if(isset($_POST['Submit']) and $capt->check_result()){        
   
$message_send "Mensaje desde la página\n\n      
      Nombre: "
.utf8_decode($_POST['Nombre'])." \n
      Correo: "
.utf8_decode($_POST['Correo'])." \n";
                
      
/*foreach ($_POST['Tour'] as $id){
            $message_send = $message_send + $id." \n";
      }*/
            
   
$headers .= 'To: <'.$email_recipient.'>' "\r\n";
   
$headers .= 'From: '.$_POST['Nombre'].' <'.$_POST['Correo'].'>' "\r\n";

   if(
mail($email_recipient'SOLICITUD ENVIADA' $message_send$headers))
   
/*Aqui lo puse para que se muestre como mensaje*/
      
foreach($_POST["Tour"] as $id){
         echo 
$id "<br />";
      }
   else 
      echo 
'<div style="color: red"><strong>Hubo un problema en el mensaje. Por favor, inténtelo de nuevo. Gracias.</strong></div>';  
   } 
El foreach lo puse en lo q debia mostrarse el mensaje de envio correcto, pero lo que deberia en realidad es concatenarse esos valores a la variable $message_send para su correcto envio así
Código PHP:
if(mail($email_recipient'SOLICITUD ENVIADA' $message_send$headers)) 
  #4 (permalink)  
Antiguo 10/08/2009, 12:14
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Como recibir valores de array de checkbox en php

Para concatener no se usa el simbolo de + (eso es mas bien javascript) en PHP se usa el punto (.)
Código PHP:
Ver original
  1. foreach ($_POST['Tour'] as $id){
  2.     $message_send = $message_send . $id;
  3. }
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #5 (permalink)  
Antiguo 10/08/2009, 13:18
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Como recibir valores de array de checkbox en php

Hola Abimaelrc, gracias ya me salio, te pido un ultimo favor como me llegan los valores asi:CuscoIquitosLima, etc yo quiero ponerle un salto de línea y un titulo para que se muestre así:
Tour1: Cusco
Tour2: Iquitos
Tour3: Lima

De donde saco el numero de tour para poner tour 1,2,3...
y no pude poner el titulo a los valores asi, me sale error cuando puse el script asi:
Cita:
$message_send = $message_send . "Tour" $id "\n";
  #6 (permalink)  
Antiguo 10/08/2009, 13:20
Avatar de abimaelrc
Colaborador
 
Fecha de Ingreso: mayo-2009
Ubicación: En el planeta de Puerto Rico
Mensajes: 14.734
Antigüedad: 14 años, 10 meses
Puntos: 1517
Respuesta: Como recibir valores de array de checkbox en php

Acuerdate que tienes que concatenar cada vez que trates de usar texto y variable

Código PHP:
Ver original
  1. $message_send = $message_send . "Tour" . $id . "\n";
__________________
Verifica antes de preguntar.
Los verdaderos amigos se hieren con la verdad, para no perderlos con la mentira. - Eugenio Maria de Hostos
  #7 (permalink)  
Antiguo 10/08/2009, 13:35
Avatar de salvador86  
Fecha de Ingreso: enero-2008
Ubicación: Guadalajara- Mexico
Mensajes: 467
Antigüedad: 16 años, 3 meses
Puntos: 2
Respuesta: Como recibir valores de array de checkbox en php

Muchas Gracias Abimaelrc, de verdad me has ayudado bastante, estuve buscando información hace semanas, pero ahora el formulario ya me sale correctamente, 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 21:05.