jqueryでチェックボックスのバリデーションを作る
- sample.ctp
<?= $this -> Form -> create('',['type' => 'get','url' => ['action' => 'action']])?> <?= $this -> Form -> checkbox("select.check1",array('class'=> 'select')) ?>りんご <?= $this -> Form -> checkbox("select.check2",array('class'=> 'select')) ?>バナナ <?= $this -> Form -> checkbox("select.check3",array('class'=> 'select')) ?>みかん <?= $this -> Form -> button('submit',array('type' => 'submit')) ?> <?= $this -> Form - > end(); ?>
- sample.js
$(function() { "use strict"; $('form').submit(function() { //少なくとも1つはチェックがあるかどうか 使いたいフォームのクラス名を指定 if($('.select:checked').val() !== '1' ) { // 警告を出す window.alert('ジャンルを選択してください。'); // 処理を中断 遷移しない return false; } //配列で取得する場合はつける }).get(); });
コントローラーとビューテンプレートとレイアウトとエレメント
すーぐわからなくなるので整理
- コントローラー
指定されたアドレスにアクセスした際に実行する処理
例えば
- initialize()
- レイアウトの指定(何も記述しないとdefault.ctpが適応される)
- setメソッドでエレメントにキーと値を送る
- autolayout
- それぞれのアクションに対しての制御
- ビューテンプレート
コントローラーのアクションに対応
個別のページごとの内容を書くのがここ???
- レイアウト
レイアウトの設定をする(迫真)
骨組みを設定しておいて内容の記述はエレメント書いて呼び出すようにしておくと編集したり使い回しがしやすそう
- head
<?= $this -> charset();?>
<?= $this -> Html -> css('CSSファイル'); ?>
scriptファイルも同様に
- body
div やらでレイアウトを記述しとく
あとはエレメントに任せる
- 引数ない場合
<?= $this -> element(folder\element.ctp) ?>
- 引数ある場合
<?= $this -> element(folder\element.ctp, ['キー(Controllerに書いたやつ)' => $変数]) ?>
あとコントローラーのinitialize() にsetメソッド書いとく
- エレメント
レイアウトに内容書かずにヘッダーとか、ぼでぃとかの部分ごとに編集したい場合に使用
メモってて分からなくなったので後修正
コントローラーからビューへ値を渡す
参考
コントローラーとビュー(3/6):初心者のためのCakePHP3 プログラミング入門
- コントローラー側の処理
Setメソッドでビューテンプレートに渡す値の設定
$this->set( 変数名(Controller側で宣言) , 値 );
第一引数:ビューテンプレート側で使用
第二引数:代入する値を指定
- ビュー側の処理
<?= "〜" ?>は<?php echo"〜" ?> の省略形
ビュー側は<?= ?> を利用して用意された変数を出力する。
-
コントローラー側で変数に入れたい値を指定しておく。
-
ビュー側でページのレイアウトと、コントローラー側のもある変数に対応した変数を配置する。
PHPStormでのDB設定
プロジェクト名/config/app.php への設定
Datasources で検索 設定の変更(DBは事前に作成しておく)
・データベース内容の確認方法
phpmyadminへの接続 http://localhost:[ポート番号]/phpmyadmin/
メニュー → view → Toolwindow → DataBases
データベースの設定はapp.phpの内容を確認すること