Mysql
 sql >> Database >  >> RDS >> Mysql

Inserisci Sì o No in MySQL in base al valore della casella di controllo

Il problema con le caselle di controllo (come hai notato) è che quelle deselezionate non inviano alcun dato.

Il trucco standard per aggirare questo problema è...

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

Quando la casella di controllo è selezionata, il suo valore viene inviato come appare più avanti nel documento. Se deselezionato, viene inviato il valore di input nascosto.

Puoi quindi semplicemente controllare il valore per nome

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

Nel tuo caso particolare, includi il page_id nel nome di input, ad es.

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

E in PHP

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

    // update DB
}