[PHP-users 30322] Re: Smarty+QuickFormにて確認画面での3桁区切りの方法について
oppara
mlml @ oppara.tv
2006年 9月 14日 (木) 23:48:24 JST
こんばんは、大原と申します。
例えば特定のtextエレメントの確認表示で、
number_formatを使いたいなら
HTML_QuickForm_textを継承したMy_textというクラスを作って
require_once 'HTML/QuickForm/text.php';
class My_text extends HTML_QuickForm_text
{
function My_text( $name = null, $label = null, $attr = null ) {
HTML_QuickForm_input::HTML_QuickForm_input( $name, $label,
$attr );
$this->_persistantFreeze = true;
$this->setType( 'text' );
}
function getFrozenHtml() {
$value = $this->getValue();
return ('' != $value? number_format($value): ' ' ) .
$this->_getPersistantData();
}
}
という感じで、適当にmy_text.phpというファイルに保存して
$form = new HTML_QuickForm( 'hoge' );
$form->registerElementType( 'my_text', '/path/to/my_text.php',
'My_text' );
$form->addElement( 'my_text', 'foo', 'bar' );
とすればいけるんじゃないかと思います。
(実際に取りまわす値にカンマいれたいならapplyFilter()で
^^;)
> さて、今回調査していてapplyFilter()の動作に疑問をもった
> のですが、
(略)
> 実行すると、GET変数(URL表示部分)では
> 「?'MyTextBox=+++入力内容」となり
> 空白が「+」に変換されていますが、
> HTMLソース上では空白が除去されていませんでした。
> 「 入力内容」のように空白がそのままHidden値に
> 設定されている。
exportValue()やら、getSubmitValue()の値は、確認されました
か?
実際に取りまわす値にフィルタがかかってればOKだと思うのです
が、、、
勘違いでしたらすみません。
PHP-users メーリングリストの案内