PHP isset не работает с флажком - PullRequest
2 голосов
/ 15 августа 2011

У меня есть форма, где люди должны предоставить информацию.Эта часть кода работает не так, как я хочу, и я не знаю, почему ..

if (!isset($_POST['maandag']) && !isset($_POST['dinsdag']) && !isset($_POST['geenvoork']))
{
    echo "Je bent vergeten in te vullen wanneer je aanwezig bent.";
}

сообщения работают в остальной части формы и являются правильными.Я хочу проверить, не отмечены ли эти 3 флажка.Что я делаю не так?

Ответы [ 7 ]

3 голосов
/ 15 августа 2011

Вы можете попробовать сделать print_r($_POST) и посмотреть, каковы значения полей.Это может помочь вам определить, что происходит с вашими значениями представления / поля.

2 голосов
/ 15 августа 2011

Если они в вашей форме, то они будут установлены. Вы, вероятно, хотите проверить, являются ли они ложными. Вот то, что это для одного, вы можете объединить другие:

if( !isset($_POST['maandag']) || !$_POST['maandag'] ) { 
     // do something
}

Во-вторых, код как есть означает, что вы получите сообщение, только если установлены none из флажков. Я не уверен, но если вы пытаетесь выдать сообщение об ошибке, не хотите ли вы, если какой-либо из них не установлены? В этом случае вам нужно || (или), а не && (и).

1 голос
/ 15 августа 2011

я думаю, что кодирование усложняет. ,,

попробуйте как

<input type="checkbox" name="test[]"  value="1"/>
<input type="checkbox" name="test[]" value="2"/>
<input type="checkbox" name="test[]" value="3"/>

передать значение и получить результат

0 голосов
/ 14 апреля 2014

Я только что проверил флажок, который я использую, и вот значения:

<input id="Isolated1" type="checkbox" value="1" name="Isolated1"></input>

В случае, если вход проверен, следующее оценивается как:

isset( $_POST["Isolated1"] )

//True

( $_POST["Isolated1"] )

//True

Inслучай, когда ввод НЕ проверяется:

isset( $_POST["Isolated1"] )

//False

( $_POST["Isolated1"] ) 

//Notice: Undefined index

Поэтому я предлагаю использовать функцию empty () , одновременно проверяя, существует ли переменная или ее значение равно FALSE.

0 голосов
/ 15 августа 2011

Установите правильное значение для вашего флажка в HTML.

<input type="checkbox" ... value="1">

Ваше текущее принятое решение только усложняет PHP-код.

0 голосов
/ 15 августа 2011

На самом деле это должно работать ...

Вы всегда можете установить флажок на значение и, в частности, проверить, что это значение возвращается:

<input type="checkbox" name="maandag"  value="1"/>

<?php if(isset($_POST['maandag']) && $_POST['maandag'] != '1') { /* ... */ }
0 голосов
/ 15 августа 2011

Как сказал заключенный, вам нужно проверить, пусто ли оно (), хотя, если оно вообще не установлено, это может дать вам уведомление.

Ваше, если потребуется:

isset($_POST['checkbox']) && !empty($_POST['checkbox'])

Редактировать: Глупый, ваше право, это ничего не возвращает. Проверка вашего сообщения с print_r, как указано ниже, звучит как лучший вариант.

...