戻る

チェックボックスの有無を取得する

$_POST、$_GET

<input>タグのtype属性が「checkbox」である「チェックボックス」は、Yes/Noのように一方を必ず選択するインターフェースで使われるフォーム部品です。チェックボックスに対するチェックの有無は、&_POSTや$_GETなどの変数を添え字にそのname属性を指定すると受け取れます。

チェックが付けられている場合、チェックボックスにvalue属性が指定されていれば、その変数にはvalue属性値が代入されています。value属性が指定されていない場合は「on」という文字列が代入されています。

チェックがついていない場合、その変数は未定義の状態となるため、isset()関数によってチェックの有無を判別できます。strlen()関数によって「長さが0より大きければチェックマークが付けられている」と判断することも可能です。

左側のチェックボックスをチェックに付けて「送信」ボタンをクリックすると、画面上部に「メールによる配信を希望します」と表示されます。

<?php
header("Content-type: text/html; charset=utf-8");

if(isset($_POST["btnExec"])){
	if(isset($_POST["inputdata"])){
		echo "配信を希望する";
	}
	else{
		echo "配信を希望しない";
	}
	echo "<br><br><br>";
}
?>
<!DOCTYPE HTML>
<html lang="ja-JP">
<head>
<meta charset="UTF-8">
<title></title>
</head>
<body>
配信を希望する場合はチェックをつけて「送信」ボタンをクリックしてください。
<form action="<?=$_SERVER["PHP_SELF"]?>" method="POST">
	<input type="checkbox" name="inputdata">メールによる配信を希望します
	<input type="submit" name="btnExec" value="送信">
</form>
</body>
</html>

inserted by FC2 system