определить, установлен ли флажок php $ _GET

Я просто хочу, чтобы php определял, установлен ли флажок, но я столкнулся с проблемой получения правильного возврата. Помоги пожалуйста.

Мой html-код

<label> <input name="Language" type="checkbox" id="aa" checked="checked" /> One</label> <label> <input name="Language" type="checkbox" id="bb" />Two</label> <label> <input type="checkbox" name="Language" id="cc" />Three</label> 

Я передаю значения php методом $ _GET

мой php-код:

 $aa=$_GET["aa"]; $bb=$_GET["bb"]; $cc=$_GET["cc"]; echo $aa."<br>"; echo $bb."<br>"; echo $cc."<br>"; 

вывод true false false

Затем я хочу просто определить, проверяется ли каждая ячейка, и если да, сделайте что-нибудь.

 if ($aa == true) { $abc="checked";} else { $abc="not checked"; } if ($bb == true) { $cde="checked";} else { $cde="not checked"; } if ($fgh == true) { $fgh="checked";} else { $fgh="not checked"; } 

Но операторы if всегда возвращают true, даже если флажок не установлен. Я пробовал варианты «===» и «! =», Но, похоже, это не работает.

ТИА

Solutions Collecting From Web of "определить, установлен ли флажок php $ _GET"

 if (isset($_GET['checkbox_name'])) { ... } 

Элементы управления формой (за исключением входных файлов и с некоторыми специальными правилами для входов изображений) всегда представляют строки . В строке запроса или в форме закодированного тела POST нет понятия логического элемента.

Идентификатор не имеет значения – важно только имя и значение (по крайней мере, до PHP).

Поскольку вы не дали им значения, они будут, IIRC, по умолчанию, поэтому, если вы делаете сравнение, вы должны это искать. Однако смотреть с isset проще. Это, впрочем, не совсем верно, поскольку ваш пример дает им одинаковое имя и значение, поэтому вы не можете различать их.

Кроме того, из-за странности парсера данных формы PHP, вы должны закончить с помощью [] если хотите несколько элементов с тем же именем.

Вероятно, вы хотите сделать что-то вроде этого:

 <label> <input name="Language[]" type="checkbox" id="aa" checked="checked" value="One" /> One</label> <label> <input name="Language[]" type="checkbox" id="bb" value="Two" />Two</label> <label> <input type="checkbox" name="Language[]" id="cc" value="Three" />Three</label> 

Важно : обратите внимание на добавление значений и изменение имени.

Затем в PHP $_GET['Language'] будет массивом значений отмеченных флажков, которые вы можете перебрать.

Попробовать isset()

Я думаю, что ваш HTML-код должен быть похож

 <label> <input name="Language[]" type="checkbox" id="aa" checked="checked" value ="1" />One </label> <label> <input name="Language[]" type="checkbox" id="bb" value ="2" />Two </label> <label> <input name="Language[]" type="checkbox" id="cc" value ="3" />Three </label> 

а затем, используя что-то вроде

$count = count($_GET["Language"]); вы можете подсчитать количество отмеченных флажков.

Или сделать

 $arr = $_GET["Language"]; //$arr is an array that contains the values of the checked checkboxes 

Затем вы можете foreach массив

  foreach( $arr as $item) { echo $item . "</br>"; /* Will print 1,2 and 3 (mind newlines)*/ } 

В моем PHP я получил его из $_POST['checkbox_name'] , и я обнаружил, что переменная имела значение, когда флажок был проверен (т. Е. Он существовал, даже если флажок был ясен).