[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 メーリングリストの案内