Masalah dengan kotak centang (seperti yang telah Anda catat) adalah kotak yang tidak dicentang tidak mengirimkan data apa pun.
Trik standar untuk menyiasatinya adalah...
<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">
Ketika kotak centang dicentang, nilainya dikirimkan seperti yang muncul kemudian di dokumen. Jika tidak dicentang, nilai input tersembunyi akan dikirimkan.
Anda kemudian dapat memeriksa nilainya dengan nama
$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';
Dalam kasus khusus Anda, sertakan page_id
dalam nama input, misalnya
<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">
Dan di PHP
foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
$dbFlag = $likeFlag ? 'Yes' : 'No';
// update DB
}