Главная > Программирование > РНР: настольная книга программиста
<< Предыдущий параграф
Следующий параграф >>
<< Предыдущий параграф Следующий параграф >>
Макеты страниц

9.11. Как проверить, был ли отмечен checkbox в форме

Следующая программа, которая будет проверять, был ли отмечен checkbox (поле для галочки) в форме, поможет вам не только освоить работу с формами, но также изучить новые для вас функции. Прежде всего создадим файлы index.html и test.php.

Пример 9.7. Проверка checkbox

<html>

<head>

<title>Программа</title>

</head>

<body>

form action=="test.php" method="POST">

<input type="checkbox" name="checkme" value="yo">

<input type="checkbox" name="checkmel" value="yo1">

<input type="checkbox" name="checkme2" value="yo11">

<input type="submit" value="ok">

</form>

</body>

</html>

Думаем, что в этом примере нет ничего сложного для вас, особенно если вы изучали ранее HTML. Единственное, на чем хотелось бы заострить внимание, — на строке <input type="checkbox" name="checkme" value="yo">. Обратиться к этой части окна можно будет только в том случае, если задать ей имя, как в случае name="checkme". Далее вся работа с формой будет вестись именно с учетом данной переменной "checkme". Способов обращения к value="yo" может быть несколько. В данном случае рассмотрим, как при помощи операций с переменными можно решить одну и туже задачу разными путями. Создадим файл test.php.

Код, который он должен содержать, приведен ниже:

<?

if (isset($checkme)or isset($checkme1) or isset($checkme2) ) // здесь "checkme" — имя checkbox

{

echo "Check sets"; // если checkbox отмечен,

                // выполняем какие-то действия

}

?>

Рассмотрим строку:

if (isset($checkme) or isset($checkme1) or isset($checkme2) )

Это оператор условия. Здесь проверяется, установлена ли галочка в рамке или же она отсутствует. Этим занимается функция isset ($checkme). Если галочка установлена, эта функция возвращает значение true, и выполнения условия начинается. Иначе же все наоборот (значение — false, и выполнение условия не начинается). В результате видно, что если рамка checkbox является занятой (т. е. галочка установлена), то на экране браузера выведется следующая фраза: «check sets», в противном случае ничего выводиться не будет.

Опишем еще несколько способов решения этой задачи. Обратите внимание на value="yo" в файле index.html. Рассмотренная выше программа теперь будет решаться с учетом функции strlen();. Эта функция будет проверять количество символов в строке, в нашем случае она будет проверять количество символов переменной Как видно, значение самой переменной value ичисло, которое будет передавать данная функция, должно быть больше нуля, для того чтобы оператор условия выполнился, т. е. программа перешла на следующий этап. Так как количество символов каждой из переменных в трех рамках превышает значение «нуль», то в момент, когда пользователь поставит в любую из них галочку, произойдет выполнения условия:

<?

if ( (isset($checkme) && strlen($checkme)>0) or ( isset($checkme1) && strlen($checkmel)>0) or (isset($checkme2) && strlen($checkme2)>0) )

{

    echo "Check is set";

}

?>

Существует еще один способ, один из самых простых и актуальных: в форме перед тегом <input type='checkbox' > поместить тег <input type='hidden'> с тем же самым значением параметра 'name'. Например:

<form ...>

...

<input type="hidden" name="checkme" value="0">

<input type="checkbox" name="checkme" value="1">

</form>

Теперь если checkbox отмечен, в переменной $checkme передастся «1», в противном случае «0».


СОВЕТ

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


<< Предыдущий параграф Следующий параграф >>
Оглавление