まだまだ知らないことが多い

  • 投稿日:
  • by
  • カテゴリ:
  • ハッシュタグ:

結局、「プランB」のメッセージ機能はイチから自分で作りました。

メールの場合はユーザーごとに受信箱と送信箱がある訳ですが、社内メールは他にあるのでそういうものを求めてはいません(ちなみにPHPによるWebメールシステムはたくさん見つかりました)。 欲しいのはあくまで「伝言板」的な機能なので、メッセージを保存するテーブルはシステム全体で1つです。

一旦送ったメッセージを編集・削除するのは、送信者からのみ行えるようにしました。 編集して保存した場合は、タイムスタンプが現在時刻に変更になります。
同じ職場内だし実名だし、迷惑メッセージが送られることはないと思いますので、受信者側では非表示や削除をすることはできません。
表示されるのは一ヶ月以内のメッセージだけで、古いものはデータベースには残るものの表示はされなくなります。

複数人に同じメッセージを送れるように、宛先はユーザーIDをカンマで連結して保存してあります。
複数の宛先を選択するには、select要素の size属性と multiple属性を使います。
初めて使ったのですが、POSTした値を取得するには

徒然なるままに・・・ | [PHP] select multiple の値の取得

select ボックス内の項目が複数選択可能(multiple)の場合、通常の方法では値の取得ができない。
こういった項目の作成が必要な場合、一工夫することで複数項目の取得が可能になる。
 
その工夫とは、select ボックスの名称の後ろに括弧( [] )をつけることで、配列として取得することが可能になる。

というふうにしないといけないようです。 確かも checkbox要素でもそうやって使ってました。

あと textarea要素も初めて使ったのですが、(ブラウザによって?)リサイズできるようです。

Safari 3 で textarea のリサイズを制御する方法 « Apple + iPod « Forest.Kの徒然日記

Safari 3 だと textarea がリサイズできるようになってるんだけど、これによってレイアウトが崩れちゃう場合もある訳で。
そうするとこのリサイズもなんとか制御したいな、と思う訳ですよ。
 
で、結論から言ってしまえば CSS で制御することができます。

自分も高さ方向は変えたくなかったので、水平方向だけリサイズ可能に設定しました。 Chrome10やFirefox 4.0でも働きました。

textarea要素の大きさは、スタイルで widthと heightを指定することができますが、その場合でも cols属性 と rows属性の指定がないとエラーで怒られてしまいます。 へんなの。