2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

HTMLの input type="checkbox" の値をPHPに渡すときに詰まった

Last updated at Posted at 2018-06-12

HTMLのinputタグの値をPHPに渡したい。
type="checkbox"で**「チェックしていない」**、ってことをどうしても渡したいんだ。

何がしたいか

社員名簿の登録画面のようなものを作っていて、登録時に管理者権限のありなしを入れたい。
集計表には下表のように0,1で表示したいが、HTMLでは0,1の選択ではなくチェックマークにしたい。

社員ID 名前 管理者権限
1 乾 巧 1
2 草加 雅人 1
3 木場 勇治 1
4 海堂 直也 0

やってみた

まず基本通りにやってみる。

index.html
管理者権限:<input type="checkbox" name="kanri_flg">   ※管理者にはチェックする

inputのtypeをチェックボックスにして渡す。
これで試すと、チェックマークを付けた場合は集計に1と出るものの、チェックマークを付けなかった場合に"0"を表示してくれない。
どうやらcheckboxはチェックをつけないとまるで存在しないかのような挙動を見せる。

解決策

valueを持たせてみた。

どうやったか

同じnameを持つinputタグを2つ作り、上段のタグにvalue="0"を設定し、typeをhiddenにして隠す。
下段のタグにはvalue="1"を設定。
もしチェックマークがあれば、下段のinputタグが有効になって、上段を上書きして渡してくれるようにした。

html.index.html
<input type="hidden" name="kanri_flg" value="0">
管理者権限:<input type="checkbox" name="kanri_flg" value="1">   ※管理者には☑する

inputタグのvalueの値は文字列(String)として渡される

はじめはvalueにtrue入れたりしてみたけど、どうも正しく渡してくれない。というかvar_dumpで確認するとString(4)と書いてある。
checkboxなので、真偽値(boolean)なのかと思っていたが、どうやら文字列(String)として扱われるらしい。

あとがき

HTMLの勉強中は気にかけなかったことも、PHPとの連携だと細かく見ていかなければいけない。
ちなみにcheckboxだとvalueは必須ではないらしい。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?