Vấn đề với các hộp kiểm (như bạn đã lưu ý) là những hộp không được chọn sẽ không gửi bất kỳ dữ liệu nào.
Mẹo tiêu chuẩn để giải quyết vấn đề này là ...
<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">
Khi hộp kiểm được chọn, giá trị của nó sẽ được gửi khi nó xuất hiện sau này trong tài liệu. Nếu không được chọn, giá trị đầu vào ẩn sẽ được gửi.
Sau đó, bạn có thể chỉ cần kiểm tra giá trị theo tên
$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';
Trong trường hợp cụ thể của bạn, hãy bao gồm page_id
trong tên đầu vào, ví dụ:
<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">
Và trong PHP
foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
$dbFlag = $likeFlag ? 'Yes' : 'No';
// update DB
}