2018年10月15日に初出の投稿

Last modified: 2018-10-15

休暇明けにつき、自社サイトのテスト環境を構築する作業が二件(シニア向けのサテライトサイトと、インバウンド向けのブランディングサイト)と、某番組の更新情報(JSON形式)の管理画面について、幾つか追加の要望を受けた。テスト環境はレンタルサーバのセットアップが大半なので(既存のコンテンツはアップロードしなおすだけでいい)、たぶん両方合わせても数時間で終わる。後者の管理画面は、まず追加の項目は既に完了したので、あとは項目の順番を入れ替えたいというオーダーに応えるだけだ。

とはいえ、この順番を入れ替えるという作業は地味に面倒臭い。もちろん、配列で next(), prev() を使って操作するのは簡単だが、データが一つしかないときはどうする、next() にデータがあるかどうかで挙動を分ける、そうした、地味な判定が幾つかある。恐らく最も簡単なやりかたは、「古い方」「新しい方」へ順番をズラしたい項目が矢印ボタンなどでクリックされたら、即座に順番を入れ替えてリストを表示しなおすことだ。チェックボックスで一斉に設定するような UI だと、たぶん JavaScript でいったん順番を整理してから PHP に投げる方がいい。

ということで、古い方へ一つだけズラすボタンには <a href="./order.php?category=nextweek&id=201810150001&change=older">古い方へ</a> といったリンクを付ける。受けた order.php では、バリデーションを済ませてから、項目の順番を記録しているファイルを開いて(とかやってるくらいならデータベースを使った方がいいのだが、いまのところはテキストベースでやっている)、配列の項目の順番を入れ替えている。該当する項目、そして一つ前の項目があれば取り出して、値を入れ替えて格納し直し、ファイルを更新する。新しい方へズラすときは、これと全く逆の操作をすればいい。

  1. もっと新しいノート <<
  2. >> もっと古いノート

冒頭に戻る


※ 以下の SNS 共有ボタンは JavaScript を使っておらず、ボタンを押すまでは SNS サイトと全く通信しません。

Twitter Facebook