PHP တွင် checkbox များအသုံးပြုခြင်း၏ အသေးစိတ်

ကျွန်ုပ်တို့၏ form တွင် checkbox တစ်ခုတည်းရှိသည်ဆိုပါစို့။

html<form action="" method="GET">
  <input type="checkbox" name="flag">
  <input type="submit">
</form>

ကျွန်ုပ်တို့၏ form ကိုတွက်ချက်သည့် code သည် ဤကဲ့သို့ဖြစ်သည်ဆိုပါစို့။

html<?php
  if (!empty($_GET)) { // form ကိုပို့ခဲ့လျှင်
    if (isset($_GET['flag'])) { // checkbox ကိုမှတ်သားထားလျှင်
      echo 'မှတ်သားထားသည်';
    } else {
      echo 'မှတ်သားမထားပါ';
    }
  }
?>

ကျွန်ုပ်တို့ ပြဿနာတစ်ခုနှင့် ရင်ဆိုင်ရမည် - checkbox ကိုမှတ်သားမထားပါက၊ form ထဲတွင် checkbox မှလွဲ၍ အခြားအရာများမရှိသောကြောင့်၊ $_GET ထဲတွင် array ဗလာတစ်ခုရှိနေမည်။ ဆိုလိုသည်မှာ form ကိုတွက်ချက်သည့် code ထဲတွင် form ပို့ခြင်းကိုစစ်ဆေးသည့် ပထမ if ထဲသို့ ဝင်ရောက်နိုင်မည်မဟုတ်ပါ။

ဤပြဿနာကိုဖြေရှင်းရန် အထူးနည်းလမ်းတစ်ခုကိုအသုံးပြုကြသည်။ ကျွန်ုပ်တို့၏ checkbox နှင့် အမည်တူသော ဝှက်ထားသော input တစ်ခုကိုဖန်တီးပါ။ ထိုသို့ပြုလုပ်စဉ် ဝှက်ထားသော input ၏တန်ဖိုးကို သုညအဖြစ် ထားပြီး checkbox ၏တန်ဖိုးကိုတစ်အဖြစ်ထားပါ။

html<form action="" method="GET">
  <input type="hidden" name="flag" value="0">
  <input type="checkbox" name="flag" value="1">
  <input type="submit">
</form>

ထိုသို့ဖြစ်လျှင် အောက်ပါအတိုင်းဖြစ်လာမည်။ checkbox ကိုမှတ်သားမထားပါက၊ ဝှက်ထားသော input ၏တန်ဖိုးသာ server သို့ပို့ပေးမည်။ အကယ်၍ checkbox ကိုမှတ်သားထားပါက၊ server သို့ အမည်တူတန်ဖိုးနှစ်ခုပို့ပေးမည်။ သို့သော် checkbox ၏တန်ဖိုးသည် ဒုတိယတန်ဖိုးဖြစ်သောကြောင့် ပထမတန်ဖိုးကို အစားထိုးပစ်မည်။

ထို့ကြောင့် ယခု ကျွန်ုပ်တို့၏ checkbox သည် server သို့ သုည (သို့မဟုတ်) တစ် ကိုပို့ပေးမည်။

html<?php
  var_dump($_GET['flag']); // '0' or '1'
?>

ကျွန်ုပ်တို့၏ စစ်ဆေးခြင်းတွင် ဤအရာကိုအသုံးပြုကြပါစို့။

html<?php
  if (!empty($_GET)) {
    if ($_GET['flag'] === '1') {
      echo 'မှတ်သားထားသည်';
    } else {
      echo 'မှတ်သားမထားပါ';
    }
  }
?>
Задание 1

Checkbox ကိုအသုံးပြု၍ သုံးစွဲသူကို အသက် 18 နှစ်ပြည့်ပြီလားဟု မေးပါ။ ပြည့်ပြီဆိုလျှင် website သို့ဝင်ခွင့်ပြုပါ၊ မပြည့်သေးပါက ခွင့်မပြုပါနှင့်။