sql >> Base de Datos >  >> RDS >> Mysql

Inserte Sí o No en MySQL según el valor de la casilla de verificación

El problema con las casillas de verificación (como ha notado) es que las que no están marcadas no envían ningún dato.

El truco estándar para evitar esto es...

<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">

Cuando la casilla de verificación está marcada, su valor se envía como aparece más adelante en el documento. Si no está marcado, se envía el valor de entrada oculto.

Luego puede simplemente verificar el valor por nombre

$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';

En tu caso particular, incluye el page_id en el nombre de entrada, por ejemplo

<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">

Y en PHP

foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
    $dbFlag = $likeFlag ? 'Yes' : 'No';

    // update DB
}