HTML_QuickForm suspended

2007/07/10 | HTML_QuickForm

とうとうHTML_QuickFormのメンテナンスが終了してしまった(正確に言うと追加開発が終わっただけでバグフィックスは継続しておこなわれる模様)。
DBパッケージと同様に、代替モジュールの利用を促すメッセージがpear.php.netに記述されている。
まぁ、当然といえば当然だ。PHP5で使うと、エラーが頻発するような現状で、老い先短いだろうということはよくわかっていたから。しかしひどいのは、代替モジュールである「HTML_QuickForm2」は、まだアルファ版(バージョン0.1.0)ということだ。「アルファ版を原稿バージョンの代わりに使え」というタコなメッセージには閉口してしまう・・・。

HTML_QuickForm2は、HTML_QuickFormをPHP5で使用した際にエラーが頻発したのを解決するために書き直されたパッケージである、とのこと。ちなみにドキュメントはまだまだ・・・エンドユーザ向けのドキュメントはまだ提供されていない。
APIドキュメントを少し確認してみたところ、ちょっと気になっていた「ファイル操作」の部分はまだ残っているようだ。HTML_QuickFormでは「将来的になくなるかも・・・」ということだったので、どうなることかと思っていたが、どうも引き継がれていくようだ。

ドキュメントが充実して、ベータ版でも出ない限りは、当面HTML_QuickForm2を使うことはないだろうけど、注目しておく必要があるパッケージであることには間違いない。このパッケージが正式リリースされたら、PHP5への乗換え時だ、と思う(個人的に)。

しかしこの先、新しい仕様が出てくるような気がする。現状ブラウザからはフォームからデータを送信して、フォーム専用の受け口(プログラム)を用意するわけだが、そのうち全てXML-RPCだけで全てまかなえそうな気もしてしまうのだ(もしくはSOAPでもいい)。

postならpostだけ、getならgetだけ

2006/12/06 | HTML_QuickForm

いつも便利に使っているHTML_QuickForm。
しかし特殊なことをしようとすると、うまくいかないことがある(もちろんいろいろ回避する方法はある)。

QuickFormのオブジェクトを生成する際に、以下のようにpostを指定した。
$myForm=& HTML_QuickForm(‘myForm’,’post’);

ここで例えばエレメントを以下のように追加した。
$myForm->addElement(‘text’,’myTextBox’,’Input text’);

このように記述したphpスクリプトに対して、以下のクエリをつけてアクセスしてみた(もちろんgetで)。
?myTextBox=abcd

いちおうテキストボックスには「abcd」という値が入って欲しいと思っていたのだが、そううまくはいかなかった。結果としてわかったことは・・・。
「postならpostで渡った値だけ、getならgetで渡った値だけ!」

当たり前といえば当たり前なんだけど・・・。少しだけはまりました。

radioボタンの名前

2006/08/21 | HTML_QuickForm

QuickFormのradioボタンのname属性で、つまらない試行錯誤をしてしまった。
radioやcheckboxのようなフォームの要素を作成するときは以下のように、
$item=array();
$item[]=& HTML_QuickForm->createElement(‘radio’,’name1′);
$item[]=& HTML_QuickForm->createElement(‘radio’,’name2′);
$myForm->addGroup($item,’nameG’);
要素をそれぞれ作成して、addGroupするのがわかりやすい。
しかし上記のような名前属性をつけるとプログラム上はグループ化されているが、HTMLになったときに、それぞれのラジオボタンは連動して動作してくれない。HTMLのソースを見ればわかるが、2つのラジオボタンのname属性が異なる値になっているからだ。ラジオボタンが連動するためにはname属性に同じものが指定されていることが原則だ。こういうときは以下のように指定する。
$item=array();
$item[]=& HTML_QuickForm->createElement(‘radio’,NULL);
$item[]=& HTML_QuickForm->createElement(‘radio’,NULL);
$myForm->addGroup($item,’nameG’);
ラジオボタンの各項目で名前属性に相当する部分にNULLを指定すればよい。

後付でエラーを追加する

2006/04/22 | HTML_QuickForm

QuickFormでの入力チェックは、基本的にaddRule等で入力規則を追加し、validate()でチェックをかけるのが通常の処理。しかし稀に入力規則のエラー以外でエラーを発生させたいときがある。そんなときは以下の関数を使用する。

$myForm->setElementError(‘エラー要素名’,’エラーメッセージ’);

入力規則を設定するときに

2006/04/18 | HTML_QuickForm

QuickFormでは入力規則を設定する際に、3つの方法がある。いつもよくわからなくなるのでメモ。

○addRule()
単品のエレメントに対して、規則を設定する。

○addGroupRule()
グループ化されたエレメントの個々の要素に対して、規則を設定する。それぞれの要素に対して共通の規則を設定したり、別々の規則を設定したりできる。

○addFomeRule()
フォーム内の複数の要素に対して、規則を設定する(例えば要素Aと要素Bが関連付けられている場合とか)。


守谷市(まちの情報ポータル) 無料アンケートレンタルjpForm.net