[PHP-users 23884] Re: HTML_QuickFormの必須項目について

ISIGE, Akira xia @ silvia.com
2004年 12月 12日 (日) 16:58:05 JST


いしげ です.

On 2004/12/12 10:16:10 JST,
奥村 <okuran_php_ml @ hotmail.com> wrote:

> PEAR HTML_QuickFormで必須項目には自動的に「*」が付く機能がありますが、
(snip)
> 確か何かのメソッドに「true」か「false」を設定するだけだったと
> 思います。

この true/false 指定による方法についてはわかりませんが
(石毛の見落としでなければ,そのような方法はないと思います).

Renderer として何を使用しているかにもよりますが,
HTML_QuickForm_Renderer_Default を使用しているのであれば,
required ブロックのないテンプレートを設定してやれば期待の動作になります.

こんな↓感じで.
<?php
  $form =& new HTML_QuickForm('test');
  // 〜〜$form を設定〜〜
  $renderer =& $form->defaultRenderer();
  $renderer->setElementTemplate(
    "\n\t<tr>\n\t\t<td align=\"right\" valign=\"top\">".
    "<b>{label}</b></td>\n\t\t<td valign=\"top\" align=\"left\">".
    "<!-- BEGIN error --><span style=\"color: #ff0000\">".
    "{error}</span><br /><!-- END error -->".
    "\t{element}</td>\n\t</tr>"
  );
  $form->display();
?>

ちなみに上記のテンプレートは,Default レンダラのソースにある
デフォルトのテンプレートから required ブロックを抜き取ったものです.


なお,RequiredNote は「*印は必須入力です」みたいな文のことを指すので,
これを '' に設定しても * が出なくなるわけではありません.
もちろん * を出さないなら RequiredNote も '' にすべきでしょうけども.


--
ISIGE, Akira



PHP-users メーリングリストの案内