Saltar al contenido

Obtener valores de casilla de verificación al enviar

Solución:

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, puedes usar $_POST y necesitaría hacer coincidir ambas directivas en ambos archivos para que funcionen correctamente.

### FORMULARIO HTML

<form action="third.php" method="get">
    Red<input type="checkbox" name="color[]" value="red">
    Green<input type="checkbox" name="color[]" value="green">
    Blue<input type="checkbox" name="color[]" value="blue">
    Cyan<input type="checkbox" name="color[]" value="cyan">
    Magenta<input type="checkbox" name="color[]" value="Magenta">
    Yellow<input type="checkbox" name="color[]" value="yellow">
    Black<input type="checkbox" name="color[]" value="black">
    <input type="submit" value="submit">
</form>

### PHP (usando $ _GET) usando third.php como tu manejador

<?php

$name = $_GET['color'];

// optional
// echo "You chose the following color(s): <br>";

foreach ($name as $color){ 
    echo $color."<br />";
}

?>

Suponiendo que haya elegido rojo, verde, azul y cian como colores, aparecerá así:

rojo
verde
azul
cian


##OPCION 2

También puede comprobar 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): <br>";

    foreach ($name as $color){
        echo $color."<br />";
    }
} else {
    echo "You did not choose a color.";
}

?>

## Opciones adicionales: Para aparecer como una lista: (<ul></ul> puede ser reemplazado por <ol></ol>)

<?php

$name = $_GET['color'];

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

?>

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

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

<form action="third.php" method="POST">
    Red<input type="checkbox" name="color[]" id="color" value="red">
    Green<input type="checkbox" name="color[]" id="color" value="green">
    Blue<input type="checkbox" name="color[]" id="color" value="blue">
    Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
    Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
    Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
    Black<input type="checkbox" name="color[]" id="color" value="black">
    <input type="submit" value="submit">
</form>

y en third.php

o para un campo pericular, puede obtener valor en:

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

Lo que sugiero es que es mejor usar la publicación que obtener. aquí hay algunas diferencias entre post VS get

Algunas notas sobre las solicitudes GET:

  1. Las solicitudes GET se pueden almacenar en caché
  2. Las solicitudes GET permanecen en el historial del navegador
  3. Las solicitudes GET se pueden marcar
  4. Las solicitudes GET nunca deben usarse 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 las 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 se pueden marcar
  4. Las solicitudes POST no tienen restricciones en la longitud de los datos.

código HTML

            <html>
    <head></head>
    <body>
    <form action="output.php" method="post">
    Red<input type="checkbox" name="color[]" id="color" value="red">
    Green<input type="checkbox" name="color[]" id="color" value="green">
    Blue<input type="checkbox" name="color[]" id="color" value="blue">
    Cyan<input type="checkbox" name="color[]" id="color" value="cyan">
    Magenta<input type="checkbox" name="color[]" id="color" value="Magenta">
    Yellow<input type="checkbox" name="color[]" id="color" value="yellow">
    Black<input type="checkbox" name="color[]" id="color" value="black">
    <input type="submit" value="submit">
    </form>
    <body>
    </html>

Código PHP

    <?php


    if(isset($_POST['color'])) {
    $name = $_POST['color'];

    echo "You chose the following color(s): <br>";
    foreach ($name as $color){
    echo $color."<br />";
    }} // end brace for if(isset

    else {

    echo "You did not choose a color.";

    }

    ?>
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *