【HTML5】localStorageを使ってローカルPCに連想配列DBを構築する

HTML5で利用できるようになったlocalStorageは
その名の通り、ローカルPCにデータを保存することができます。

しかもセッションやcookieのように期限もないので
これまでWEBアプリではサーバーに保存するしかなかったデータを、
サーバーを使わずにローカルのデータベースに保存することができます。

まずはlocalStorageに対応しているかどうかを確認

次に値の格納・取得ですが、いろんな使い方が用意されています。

私が使うのはもっぱら連想配列です。

連想配列のセット (valが連想配列)

連想配列の取得

これだけで連想配列のデータベースとしていろんな使いかたができると思います。
スマホのアプリでWEBビューを使ってアプリのデータ保存に使うのも面白いですね。

もちろん、ローカルなので他の端末でアクセスするとデータが取得できないという
WEBアプリとしてはあり得なかったデメリットもあります。
ローカルとサーバーで両方DBを持ち、お互いにデータを同期させるなど工夫も必要になります。

【jQuery】配列や連想配列をコピーする

のように配列や連想配列をそのまま代入すると「参照渡し」という形になり、
コピー先だけ変更したつもりがコピー元も一緒に変更されてしまいます。

コピーするには配列の中身を代入していく必要があるのですが、
jQueryの場合はextend関数で簡単にコピーできます。

配列:

連想配列:

【JavaScript】連想配列でも配列でも要素数を取得

配列の要素数はlengthで取得できますが、
連想配列の場合はlengthは使えません。
スマートではないですがfor inでループを回してカウントするのが簡単です。

連想配列でも配列でも同じように要素数が取得できる関数です。

文字列だったら長さが返ってきます。

【WordPress】Twenty Seventeenテーマで5つ目のセクションを追加する

Twenty Seventeenテーマでは
「外観」→「カスタマイズ」→「テーマオプション」から
簡単に4つまでのセクションを設定することができるようになっていますが、
ここに5つ目のセクション設定枠を追加するにはPHPファイルを変更しなくてはならないようです。

といっても非常に簡単です。
functions.phpに下記のコードを追加するだけです。

これでセクションを設定するプルダウンの数が5つになります。
簡単ですね。

【jQuery】val()、prop()で値を変更した際にonchangeイベントを発火させる

jQueryでフォームの値を変更した際に、単に

としただけでは、onchangeイベントは実行されませんが、

のようにchange()を呼ぶことでonchangeイベントを発火させることができます。