プログラミングVP初級で学んだこと2

GeekGirlLaboのプログラミングVPで学んだことをまとめる。

cakePHP2。


配列をデータベースに保存する方法。

JSON形式に変換してデータベースに保存する。
PHPではjson_encode(値)で値をJSON形式に変換できる。
JSON形式の値をPHPの変数に変換するにはjson_decode(値)を使う。
json_decode(値,true)にすると連想配列形式になる。
json_decode(値,false)にするとobjectになる。

PHPでシリアル化して保存する方法もあるが、データを検証して改竄がないか確認する必要がある。
JSONが安全かつ標準のフォーマット。


連想配列とobjectでは値の呼び出し方が異なる。

連想配列はkeyを指定して呼び出す。
$array['key']

objectはnewでインスタンス化してからプロパティを指定して呼び出す。
$object1 = new object;
$object->プロパティ

debugやvar_dumpでどっちなのか確認すると良い。


スクリーンショット 2021-08-06 11.51.46

こんな感じの表で、「チェックしたものを削除」欄のチェックボックスにチェックを入れたデータのみを「チェックしたものを削除」ボタンクリック時に削除する方法。
削除する前には「本当に削除しますか?」というアラートを表示する。
「削除」欄の削除はクリックした削除ボタンと同じ行のデータ単体を削除する。


アラートの出し方。

<?php echo $this->Form->create('モデル名',array(
                                            'action' => 'アクション名',
                                            'onsubmit' => 'return confirm("本当に削除してもいいですか?");'));?>

onsubmitを指定すると、submitした時にアラートを表示することができる。


単体で削除する場合。

postLinkで各データのidの情報をpost送信し、送信されてきたidを持つデータをdeleteで削除する。


「チェックしたものを削除」で複数削除する場合。

チェックボックスのvalueには各データのidの情報を持たせる。
複数選択できるチェックボックスは配列形式でidの情報がpost送信されるので、送信されてきたidを持つデータをdeleteAllで全て削除する。


チェックボックスには自動でid(HTMLのタグに設定できる属性のidのこと)が付く。id名を指定しないと全てのチェックボックスが同じid名になってしまうので、checkbox1、checkbox2みたいになるように設定しておく。
HTMLのidは同じ名前を付けることは出来ないので注意する。


フォームの中にpostLinkを作成する場合。

postLink自体がformを生成するのでformの中に入れることはできない。

<?php echo $this->Form->end();?>
<?php echo $this->fetch('postLink'); ?>

よって、formを閉じた後にfetch('postLink')でpostLinkを表示する。
fetchは()内のものを出力してくれる。
こうすることで、見た目的にはformの中(=表の中)にpostLinkが表示されているが、コード的にはformが閉じた後にpostLinkがずらーっと並んでいる状態になる。


表全体を1つのformとして考える必要があるので、formの開始はtableタグの上に書かなければならない。
formの中にinputやsubmitが存在するという基本を忘れないようにする。



この記事が気に入ったらサポートをしてみませんか?