⊗ppPmFmChcN 307 of 447 menu

PHP да чекбокслардан фойдаланишнинг нуанслари

Фарз қилайлик, бизнинг формамизда фақат чекбокс бор:

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

Фарз қилайлик, бизнинг формани қайта ишлаш кодимиз шундай кўринишда:

<?php if (!empty($_GET)) { // агар форма юборилган бўлса if (isset($_GET['flag'])) { // агар чекбокс белгиланган бўлса echo 'белгиланган'; } else { echo 'белгиланмаган'; } } ?>

Бизни муаммо кутмоқда - агар чекбокс белгиланмаган бўлса, унда, формада чекбоксдан бошқа бошқа элементлар мавжуд бўлмагани сабабли, $_GET да бўш массив бўлади. Демак, формани қайта ишлаш кодида биз форманинг юборилганлигини текширадиган биринчи if га киролмаймиз.

Бу муаммони ҳал қилиш учун махсус усулдан фойдаланилади: чекбоксимизнинг номи бир хил бўлган яхширитма инпут яратилади. Бунда яхширитма инпутнинг қийматига нол, чекбокснинг қийматига эса бир қўйилади:

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

Бундай ҳолатда куйидаги натижа ҳосил бўлади. Агар чекбокс белгиланмаган бўлса, унда серверга фақат яхширитма инпутнинг қиймати юборилади. Агар эса чекбокс белгиланган бўлса, унда серверга бир ном билан иккита қиймат юборилади. Лекин, чекбокснинг қиймати иккинчи бўлгани сабабли, у биринчисини ўчириб юборади.

Демак, энди бизнинг чекбоксимиз серверга йўналтирадиган қиймат нол ёки бир бўлади:

<?php var_dump($_GET['flag']); // '0' ёки '1' ?>

Бунни текширишда фойдаланамиз:

<?php if (!empty($_GET)) { if ($_GET['flag'] === '1') { echo 'белгиланган'; } else { echo 'белгиланмаган'; } } ?>

Чекбокс ёрдамида фойдаланувчидан сўранг, унинг ёши 18 га етганми ёки йўқми. Агар ётган бўлса, унга сайтга киришга рухсат беринг, агар ётмаган бўлса - рухсат берманг.

Ўзбек
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeOʻzbekTiếng Việt
Биз веб-сайт ишлаши, таҳлил қилиш ва персоналлаштириш учун кукидан фойдаланамиз. Маълумотларни қайта ишлаш Махфийлик сиёсатига мувофиқ амалга оширилади.
ҳаммасини қабул қилиш мослаштириш рад этиш