Печать флажков, которые отмечены в массиве $ _POST - PullRequest
1 голос
/ 31 октября 2011

Итак, у меня есть пара флажков в моем массиве $_POST, и я хочу посмотреть, проверены они или нет. Тогда я хотел бы распечатать те, которые проверены. Как бы мне это сделать?

Ответы [ 3 ]

3 голосов
/ 31 октября 2011

Как правило, мы играем с флажком, используя массивное имя, например:

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

Таким образом, мы можем легко определить, если кто-то установил наш флажок, используя:

if( isset( $_POST['check'] ))
{
    if( count( $_POST['check'] ) > 0 )
    {
        echo "checked value are: " . implode(", ", $_POST['check']);
    }
}

Это в основном потому, что браузер не отправляет значение флажка, который не отмечен.

0 голосов
/ 31 октября 2011

Это немного расширяет ответ @ iHaveacomputer.

В $_POST или $_GET.

ставятся только отмеченные флажки и радио.

Однако вы можете иметь массив флажков (или других типов ввода), поэтому, если вы используете скобки в именах ваших входов, вы должны проверить, является ли значение массивом или нет.

foreach ($_POST as $input_name => $value_s)
{
    if (is_array($value_s))
    {
        foreach ($value_s as $index => $value)
        {
            echo "$input_name[$index]::$value<br />"; 
            // note that this literally prints the input_name, brackets, and index)
            // using braces will just print the value
        }
    }
    else
    {
            echo "$input_name::$value_s<br />"; 
    }
}
0 голосов
/ 31 октября 2011

Вы можете распечатать только флажки checked, так как браузер не будет отправлять пустые (непроверенные) флажки:

foreach ($_POST as $key=>$val)
{
    echo $key ." :: ".$val."<br/>";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...