質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

Q&A

1回答

5078閲覧

【cakePHP】Form->input()で展開したチェックボックスが、チェックされない状態で展開される

pecchan

総合スコア555

CakePHP

CakePHPは、PHPで書かれたWebアプリケーション開発用のフレームワークです。 Ruby on Railsの考え方を多く取り入れており、Railsの高速性とPHPの機動性を兼ね備えています。 MVCやORMなどを「規約優先の考え方」で利用するため、コードを書く手間を省くことができます。 外部のライブラリに依存しないので、単体での利用が可能です。

0グッド

0クリップ

投稿2018/10/15 01:30

編集2018/10/15 01:32

cakephp(2.7.8)
PHP 5.6

更新画面を作成中です。
データを呼び出した時に、テーブルの値(TINYINT)がいずれでもチェックボックスに反映されず困っています。

テーブル
Employee

カラム (TINYINT)
license


1

上記の状態で、
Form->input()でチェックボックスを展開しましたが、チェック済み(checked)で展開されません。

コードは以下になります。

php

1 2<?php echo $this->Form->create('Employee'); ?> 3 4 <?php echo $this->Form->input('id'); ?> 5 6 <input type="text" id="id_employee_no" name="data[Employee][no]" value="<?php echo($post['Employee']['no']); ?>" style="width:80px;" /> 7 8 <?php echo $this->Form->input( 'license', array( 9 'type' => 'checkbox', 10 'label' => ' ', 11 ));?> 12 13 14<?php echo $this->Form->end(__('登録')); ?> 15 16 17

更新は出来ています。チェックも未チェックも、テーブルに値が反映されます。
ただし、画面に呼び出すと、未チェックの状態です。

以下が展開されるhtmlです。

html

1 2<form action="/app/employee/edit/7741" id="EmployeeEditForm" method="post" accept-charset="utf-8"> 3 <div style="display:none;"><input type="hidden" name="_method" value="POST"/> 4 </div> 5 <input type="hidden" name="data[Employee][id]" id="EmployeeId"/> 6 <input type="text" id="id_employee_no" name="data[Employee][no]" value="4" style="width:80px;" /> 7 <div class="input checkbox"> 8 <input type="hidden" name="data[Employee][license]" id="EmployeeLicense_" value="0"/> 9 <input type="checkbox" name="data[Employee][license]" value="1" id="EmployeeLicense"/> 10 <label for="EmployeeLicense"> </label> 11 </div> 12 13 <div class="submit"> 14 <input type="submit" value="登録"/> 15 </div>< 16/form>

どうすればcheckedの状態で呼び出せるのでしょうか?

分かる方教えてください。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

公式リファレンスを確認しますと、

チェックボックスのオプション

'checked' - このチェックボックスをオンにするかどうかを示すブール値。 デフォルトは false です。 'disabled' - 入力不可のチェックボックスを作成。

チェックボックスをヘルパーで作ったからと勝手にチェックを入れてくれるわけではないので、
該当チェックボックスの送信内容を確認してchecked=>true/falseを切り替えれば良いと思います。

投稿2018/10/15 05:11

m.ts10806

総合スコア80850

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2018/10/15 22:07

低評価つけられた人へ 理由はよくわかりませんが、もし可能でしたら的確な回答をしてあげてください。 おそらく私よりCakePHPに詳しい方なのでしょうから。
pecchan

2018/10/16 02:05

mts10806様 有難う御座います。 参考にしているプログラムがあり、そちらが、特に何も設定してない(はずな)のに、自動でcheckedになっていたため、てっきり自動でセットしてくれるものと思っておりました! 公式リファレンスも有難う御座います。参照させていただきました。 参考にしているプログラムも、朝からチェックボックスだけにして動作させましたが、やはり何故か初期値セットされるのです・・・。なぜだろう( ノД`)? 低評価付けられた方は、別の方法?自動でセットする方法をご存知でしたら教えていただけないでしょうか。 宜しくお願い致します。
m.ts10806

2018/10/16 06:42

参考にされているプログラムが一般的に公開されているもの(例えばQiitaの記事など)でしたら、そちらを質問本文に提示いただけたら具体的な回答がつくかもしれません。 基本的にどのような記事を参照しても公式リファレンスやマニュアルで仕様を確認するのは必須ですね。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問