Obtener los valores de la checkbox en enviar

Tengo 6 opciones, quiero obtener los valores comprobados para almacenarlos en la variable en la segunda página. ¿Cómo sigo haciendo eso?

Red Green Blue Cyan Magenta Yellow Black

Y la página de third.php :

 $color = $_GET['color']; echo 'The color is '.$color; 

Si elimino [] , obtengo el color, cuando lo hago como color[] recibo un aviso que dice:

Matriz a conversión de cadenas

Lo que quiero es el valor de las casillas marcadas para poder guardarlo en variable.

Solutions Collecting From Web of "Obtener los valores de la checkbox en enviar"

Un buen método que es uno de mis favoritos y para muchos, estoy seguro, es hacer uso de foreach que generará cada color que elija, y aparecerá en la pantalla uno debajo del otro.

Cuando se trata de usar casillas de verificación, no tiene más remedio que usar foreach , y es por eso que solo obtiene un valor devuelto de su matriz.

Aquí hay un ejemplo usando $_GET . Sin embargo, puede usar $_POST y deberá hacer coincidir ambas directivas en ambos archivos para que funcionen correctamente.

FORMULARIO HTML

 
Red Green Blue Cyan Magenta Yellow Black

PHP (usando $ _GET) usando third.php como su manejador

 < ?php $name = $_GET['color']; // optional // echo "You chose the following color(s): 
"; foreach ($name as $color){ echo $color."
"; } ?>

Asumiendo que han elegido rojo, verde, azul y cian como colores, aparecerá así:

rojo
verde
azul
cian


OPCION 2

También puede verificar si se eligió un color. Si no se elige ninguno, aparecerá un mensaje separado.

 < ?php $name = $_GET['color']; if (isset($_GET['color'])) { echo "You chose the following color(s): 
"; foreach ($name as $color){ echo $color."
"; } } else { echo "You did not choose a color."; } ?>

Opciones adicionales:

Para aparecer como una lista: (

    puede reemplazarse por

      )

       < ?php $name = $_GET['color']; if (isset($_GET['color'])) { echo "You chose the following color(s): 
      "; echo "
        "; foreach ($name as $color){ echo "
      • " .$color."
      • "; } echo "
      "; } else { echo "You did not choose a color."; } ?>

      Bandera: (5 de agosto de 2016)

      Recibí 2 downvotes esta mañana y mis comentarios fueron eliminados; ¿por qué? Quien está haciendo esto, está obvioulsy haciendo esto con malicia. La respuesta no ha recibido más que votaciones y ahora esto. Es enserio; wtf? – Fred -ii- Hace 1 hora declinó: las personas son libres de votar como quieran, siempre y cuando no seas el objective. No veo evidencia de eso. Sus comentarios sobre los votos fueron ruido, marcado como tal y eliminado.

      Responda a esto: eso es justo; Yo soy.

      (No es action="get" o action="post" es el method="get" o method="post"

      Intenta hacerlo usando el método de publicación:

       
      Red Green Blue Cyan Magenta Yellow Black

      y en third.php

      o para un campo pericular en el que se obtiene valor:

       $_POST['color'][0] //for RED $_POST['color'][1] // for GREEN 

      Lo que sugiero es que es mejor usar publicaciones que obtener. aquí hay alguna diferencia entre la publicación VS obtener

      Algunas notas sobre solicitudes GET:

      1. Las solicitudes GET pueden almacenarse en caché
      2. Las solicitudes GET permanecen en el historial del navegador
      3. Las solicitudes GET se pueden marcar
      4. Las solicitudes GET nunca se deben usar cuando se trata de datos confidenciales
      5. Las solicitudes GET tienen restricciones de longitud
      6. Las solicitudes GET deben usarse solo para recuperar datos

      Algunas notas sobre solicitudes POST:

      1. Las solicitudes POST nunca se almacenan en caché
      2. Las solicitudes POST no permanecen en el historial del navegador
      3. Las solicitudes POST no pueden ser marcadas
      4. Las solicitudes POST no tienen restricciones en la longitud de los datos

      código HTML

           
      Red Green Blue Cyan Magenta Yellow Black

      Código PHP

        < ?php if(isset($_POST['color'])) { $name = $_POST['color']; echo "You chose the following color(s): 
      "; foreach ($name as $color){ echo $color."
      "; }} // end brace for if(isset else { echo "You did not choose a color."; } ?>

      Solo para imprimir puede usarlo a continuación:

       print_r($_GET['color']); 

      o

       var_dump($_GET['color']); 

      Creo que el valor de $_POST['color'] debe leerse solo después de comprobar si está configurado.

       < ?php if(isset($_POST['color'])) { $name = $_POST['color']; echo "You chose the following color(s): 
      "; foreach ($name as $color){ echo $color."
      "; }} // end brace for if(isset else { echo "You did not choose a color."; } ?>

      Quizás una mejor manera es usar la función php in_array () de esta manera:

       $style='V';//can be 'V'ertical or 'H'orizontal $lineBreak=($style=='V')?'
      ':''; $name='colors';//the name of your options $Legent="Select your $name";//dress it up in a nice fieldset with a ledgent $options=array('red','green','blue','orange','yellow','white','black'); $boxes='';//innitiate the list of tickboxes to be generated if(isset($_REQUEST["$name"])){ //we shall use $_REQUEST but $_POST would be better $Checked=$_REQUEST["$name"]; }else{ $Checked=array(); } foreach($options as $option){ $checkmark=(in_array($option,$Checked))?'checked':''; $nameAsArray=$name.'[]';//we would like the returned data to be in an array so we end with [] $boxes.=($style=='V')?"$option : ":"$option "; $boxes.="$lineBreak"; } echo< <
      \n
      {$Legent} {$boxes}
      EOF ;

      Para empezar, hemos creado un $style variable para establecer si queremos las opciones de forma horizontal o vertical. Esto no ocurrirá cómo mostramos nuestras casillas de verificación. Luego establecemos el $name para nuestras opciones, esto es necesario como un nombre de la matriz en la que queremos mantener nuestras opciones. He creado un bucle aquí para construir cada opción como figura en las $options la matriz, luego verificamos cada elemento si debe marcarse en nuestro formulario devuelto. Creo que esto debería simplificar la forma en que podemos reproducir un formulario con casillas de verificación.

      Si desea convertir valores específicos en nuevas variables, si se han seleccionado:

       // Retrieve array color[] and set as variable $colors = $_GET['color']; // Use array_search to find the key for "red" $key_red = array_search('red', $colors); // If "red" exists, the key will be an integer (or FALSE) if (is_int($key_red)) { $red_color = 'Red was selected'; } 
       //retrive check box and gender value $gender=$row['gender']; $chkhobby=$row['chkhobby'];  GENDER  Male/> Female/>    Hobbies  
      < ?php //print_r($row); $hby = @explode(",",$row['chkhobby']); //print_r($hby); ?>

      read checked="checked"< ?php }?>> write checked="checked"< ?php }?>> play checked="checked"< ?php }?>>

      //update $gender=$_POST['gender']; $chkhobby = implode(',', $_POST['chkhobby']);