[PHP-users 30320] Re: Smarty+QuickFormにて確認画面での3桁区切りの方法について
Kronos
kronos.jpn @ gmail.com
2006年 9月 14日 (木) 18:43:17 JST
tokuyamaさん、大原さん
ご回答ありがとうございます。
tokuyamaさんからお教えいただいた方法ですが、
こちらは、やはり入力画面にて既に入力項目(INPUT)ではなく
確定項目として表示されてしまいます。
大原さんからお教えいただいた方法は、ちょっと内容がまだ理解できていません。
もう少し自分のものにするには時間がかかりそうなので、検証したらまたご報告したいと思います。
若干利便性は落ちますが、一つの方法として
テンプレート上でfreeze状態を確認し、
freeze状態のときだけプラグインを適用する方法で一応は実現しました。
但し、この方法だとせっかくデザインとロジックを分離していたものが
一部混在してしまうので、できれば他の方法に変更したいと思います。
さて、今回調査していてapplyFilter()の動作に疑問をもったのですが、
私の環境では以下のソースで空白を前後にいれても動きません。
これは、開発環境のWindows上で実行している為なのでしょうか?
それとも何か根本的に設定かなにかがおかしいのでしょうか?
(参考)
実行すると、GET変数(URL表示部分)では「?'MyTextBox=+++入力内容」となり
空白が「+」に変換されていますが、
HTMLソース上では空白が除去されていませんでした。
「 入力内容」のように空白がそのままHidden値に設定されている。
<?php
require_once "HTML/QuickForm.php";
$form = new HTML_QuickForm('frmTest', 'get');
$form->addElement('header', 'MyHeader', 'Testing QuickForm');
$form->addElement('text', 'MyTextBox', 'What is your name?');
$form->addElement('reset', 'btnClear', 'Clear');
$form->addElement('submit', 'btnSubmit', 'Submit');
$form->addRule('MyTextBox', 'Your name is required', 'required');
$form->applyFilter('MyTextBox', 'trim');
if ($form->validate()) {
# If the form validates then freeze the data
$form->freeze();
}
$form->display();
?>
06/09/14 に oppara<mlml @ oppara.tv> さんは書きました:
> こんにちは、大原と申します。
>
> > 3桁編集だけであれば「number_format()」でいけるのですが、
> > 今回は入力画面で入力された値を確認画面で出力する際に3桁
> > 編集したいと思っています。
>
> number_format()を利用した確認画面を表示したいelementのクラ
> スを継承して、
> getFrozenHtml()をオーバーライドすればいけるんではないかと思いま
> す。
> (多分、registerElementType()する必要があると思います)
>
> http://pear.php.net/manual/ja/package.html.html-quickform.php
>
> 間違い、勘違いでしたらすみません。
> _______________________________________________
> PHP-users mailing list PHP-users @ php.gr.jp
> http://ns1.php.gr.jp/mailman/listinfo/php-users
> PHP初心者のためのページ - 質問する前にはこちらをお読みください
> http://www.php.gr.jp/php/novice.php3
>
PHP-users メーリングリストの案内