La casilla de verificación está seleccionada y no asigna un nuevo valor

Independientemente de lo que se seleccione, sigue asignando un valor de 1 a todas las casillas de verificación y no cambia la casilla de verificación seleccionada a un valor de 0. Aquí está el código que es correcto desde el punto de vista de la sintaxis, pero el valor predeterminado es 1 sin importar lo que no haga. vea por qué no cambia el valor del cuadro seleccionado a '0'

//Correct answer variables
$chkBox1 = '1';
$chkBox2 = '1';
$chkBox3 = '1';
$chkBox4 = '1';
$chkBox5 = '1';

if (isset($_POST['chkBox1'])) {

if ($chkBox1 == 'chkBox1Selected') {
$chkBox1 = '0';
}

}//End of chkBox1Selected logic


if (isset($_POST['chkBox2'])) {

if ($chkBox2 == 'chkBox2Selected') {
$chkBox2 = '0';
}

}//End of chkBox2Selected logic


if (isset($_POST['chkBox3'])) {

if ($chkBox3 == 'chkBox3Selected') {
$chkBox3 = '0';
}

}//End of chkBox3Selected logic

preguntado el 02 de julio de 12 a las 17:07

1 Respuestas

Tus if declaraciones nunca evaluarán a true.

Echa un vistazo a una casilla de verificación:

$chkBox1 = '1';

if (isset($_POST['chkBox1'])) {
    if ($chkBox1 == 'chkBox1Selected') {
        $chkBox1 = '0';
    }
}

$chkBox1 se establece a '1', y nunca se cambia de eso, por lo que nunca será igual a 'chkBox1Selected'.

Dicho esto, no debería preocuparse por el valor de las casillas de verificación, ya que solo las casillas marcadas se enviarán al servidor.

Teóricamente, podrías simplemente hacer:

if (isset( $_POST['chkBox1'])) {
    $chkBox1 = '0';
}

Sin embargo, si desea leer el valor de la casilla de verificación, debería poder hacer esto:

if (isset( $_POST['chkBox1'])) {
    if ($_POST['chkBox1'] == 'chkBox1Selected') {
        $chkBox1 = '0';
    }
}

O, de forma más concisa:

if( isset( $_POST['chkBox1']) && ($_POST['chkBox1'] == 'chkBox1Selected')) {
        $chkBox1 = '0';
}

Respondido 02 Jul 12, 17:07

¿No es ahí donde tengo $ chkbox1 = 0? ¿Estoy afirmando que si el atributo de valor de la casilla de verificación es 'chkBox1Selected' para luego convertirlo en 0 en lugar del valor predeterminado de 1? - keith montgomery

No, no es. Actualicé mi respuesta para mostrar cómo verificar el valor de la casilla de verificación. - apodo

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.