職場実習14日目

今日は投稿用フォームの作成に時間を費した。
不具合が山のように出たため、バグの修正に追われ、作業が進まない。
来週月曜に、進行状況をレビューするので、とにかく進めないといけない。

プルダウンメニューに連動したフォームの動的な変形

やりたい事

  1. グループ種類選択リスト、グループ選択リストをプルダウンメニューで作成
  2. 初期状態は、グループ種類指定なしで、グループは全種類リスト表示
  3. グループ種類選択を変更すると、グループ選択リストの種類が絞り込まれる

方法

  1. グループ選択リスト表示内容は、グループ種類指定なしの時は全種類、ありの時は種類別に絞られた内容のみ
  2. グループ種類選択リストの選択項目を変えた時にイベントでjavascriptを動作させ、フォーム内容をcgiに送信する
  3. cgiでは送られてきたフォームの内容をハッシュに格納し、ハッシュ毎セッションに保持した後、フォーム画面にリダイレクトする
  4. フォーム画面を表示する前に、セッションに以前のフォーム内容のハッシュが保持されているか確認し、保持されているなら、フォーム内容を取得し、画面表示に反映する(見た目的には、フォームが一旦送信されたことが全く意識されず、フォームが再描画されたようにしか見えない)
  5. Apache上でJavaScriptの外部ファイルを動作させる時は、jsファイルが動作するよう、拡張子を対応させる必要がある。
画像アップロード時のサーバーエラーが直らない

フォームの形式に間違いがあるわけではなく、CGIモジュールを使ったファイルアップロードの方法も調べ、それを参考にソースを何度も修正してみたが、全く同じエラーメッセージしか出てこず、何のファイルの何行目が間違っているとか、そういう内容も表示されず、うんともすんとも言わないので、手がかりが無かった。
Apacheの設定を何度調べて見ても、それらしき箇所が見当たらず、手がかりの無いまま他の作業を優先させ、これを後回しにしていた。
しかし、今日、社員の金村さんに聞いてみたところ、過去の研修生が多くつまづいた所らしく、ヒントは転がっているらしい。
そこで、色々と手がかりを探す中で、エラーメッセージをよく見てみたら、「CGI.pmが原因で、multipartデータの送信中にソケットを閉じたよ」という意味だと分かった。
ヒントになりそうなページを見付ける事もできた。
CGI.pmのファイルアップローダ - perl-mongers.org
CGIモジュールの他に、Fileモジュールというものが要るらしい。早速取り掛かろうと思う。

今後の作業について

現時点では完成にはほど遠いため、土曜日も出社しようかと考えている。
(会社は土曜日も開いているらしく、来てもいいと言われた。)

おまけ

便利なサイト
Perl表技集