चेकबॉक्स के साथ समस्या (जैसा कि आपने नोट किया है) यह है कि अनियंत्रित वाले कोई डेटा सबमिट नहीं करते हैं।
इससे निजात पाने के लिए मानक तरकीब है...
<input type="hidden" name="field_name" value="0">
<input type="checkbox" name="field_name" value="1">
जब चेकबॉक्स चेक किया जाता है, तो इसका मान सबमिट किया जाता है जैसा कि बाद में दस्तावेज़ में दिखाई देता है। यदि चेक नहीं किया गया है, तो छिपा हुआ इनपुट मान सबमिट किया जाता है।
फिर आप केवल नाम से मान की जांच कर सकते हैं
$field = isset($_POST['field_name']) ? $_POST['field_name'] : false;
$dbFlag = $field ? 'Yes' : 'No';
अपने विशेष मामले में, page_id
. शामिल करें इनपुट नाम में, उदाहरण के लिए
<input type="hidden" name="likebutton[416]" value="0">
<input type="checkbox" name="likebutton[416]" value="1">
और PHP में
foreach ($_POST['likebutton'] as $pageId => $likeFlag) {
$dbFlag = $likeFlag ? 'Yes' : 'No';
// update DB
}