ホームページ >バックエンド開発 >PHPチュートリアル >Smarty+QUICKFORM 小規模デモ_PHP チュートリアル
会社では SMARTY 開発モデルと組み合わせた Quickform を必要としているため、ここ数日間取り組んできました。Quickform は、フォーム コントロールと検証フォーム用の JS コードを迅速に生成できる PEAR クラス ライブラリです。これを手動で作成すると、JS と HTML を生成する方が手間がかかるのではないか? , しかし、OA のバックエンドなど、フォーム コントロールが多数ある場合、クイックフォームの利点が表示されます。クイックフォームを使用すると、コードが明確でメンテナンスが容易になるという特徴があり、大規模および中規模の開発に非常に適しています。さらに便利なのは、smarty で簡単に使用できることです ^_^ さっそくコードを見てみましょう。事前に PEAR のインストールを理解しておくのが最善です。http を参照してください。 ://hi.baidu.com/wanghaozi/blog/item/81cfb7003f973687e850cd3e.html。
会社が使用しているクイックフォームは独自に改良されているため、オンラインで見るものとは少し異なります。ここで著作権を説明するのは不便です。誰でも理解できるように、コアのコードを簡単に示します。 ご興味のある方は お友達このHAOHAPPYの記事を読むことができます:http://www.phpe.net/articles/418.shtml
[php]
/*
*著者: Hui Boss
* ページ: path.cfg.php
* 機能: システムパス設定
* 著作権: 自由にコピー^_^
*/
$global['path']['conf'] = $global ['path'][ 'root'] . 'conf/';//システム設定ファイルのパスを定義します
$global['path']['lib'] = $global['path']['root'] . 'lib/';/ /システム ライブラリ ファイルのパスを定義します
?>
[/php]
[php]
/*
*著者: Hui Boss
*ページ: Smarty.cfg。 php
*関数: Smarty 基本設定
*著作権: 自由にコピー^_^
*/
//テンプレートパスを定義
$global['smarty']['template_dir'] = $global['path'] ['root'] . 'lib /smarty/templates';
//テンプレートのコンパイルディレクトリを定義します
$global['smarty']['compile_dir'] = $global['path']['root'] ' lib/smarty/templates_c';
/ /smarty 構成フォルダーのパスを定義します
$global['smarty']['config_dir'] = $global['path']['conf'] 'lib/smarty/configs';
$ global ['smarty'] ['cache_dir'] Due Smartyエラー報告Disabled
$ global ['smarty'] ['debugging'] = false; caching'] = false;
//$global['smarty'] ['cache_lifetime'] = 6000;
//左右の境界文字を定義します
$global['smarty']['left_delimiter'] = ' <{';
$global['smarty']['right_delimiter'] = '}>';
?>
[/php]
[php]
/*
*著者: Hui Boss
*ページ: common.cfg.php
*機能: グローバル設定
*著作権: 自由にコピーしてください^_^
*/
$global['path']['root'] = dirname( __FILE__) . '/';//ルートディレクトリを設定します
require($global['path ']['conf'] . 'conf/path.cfg.php');
require($global['path' ]['conf'] . 'smarty.cfg.php');
//smarty クラス ライブラリが含まれています
require($global['path']['lib'] . 'smarty/libs/Smarty.class.php' );
//smarty 構成
$tpl = new Smarty();
$tpl- >template_dir = $global['smarty']['template_dir'];
$tpl->compile_dir = $global[' Smarty']['compile_dir'];
$tpl->config_dir = $global[' Smarty']['config_dir'];
$tpl->debugging = $global['smarty']['debugging' ];
$tpl->キャッシュ = $global['smarty']['caching' ];
$tpl->cache_lifetime = $global['smarty']['cache_lifetime'];
$tpl-> ;left_delimiter = $global['smarty']['left_delimiter'];
$tpl-> ;right_delimiter = $global['smarty']['right_delimiter'];
unset($global['smarty']);
ini_set('include_path', ini_get('include_path') .
PATH_SEPARATOR . $global[' path']['lib'] . 'pear/');//pear ライブラリ ファイルをロードします
?>
[/ php]
[php]
/*
*作者: Hui Boss
*ページ:index.php
*機能: UI
*著作権: 自由にコピーしてください^_^
*/
require_once ('common.inc.php');//グローバル設定をロードします
//クイックフォームクラスライブラリを含めます
require($global['path']['lib'] . 'pear/HTML/QuickForm.php');
$form = new HTML_QuickForm('changepwdform');//クイックフォーム インスタンスを生成します。パラメータはフォーム名です
/*
*フォーム要素の追加を開始します
*パラメータは次のとおりです: フォーム要素の種類、名前、(ボタンのラベルのテキスト) ), style
*/
$form->addElement('password','adminPwd', '','style="width:120px"');
$form->addElement('password','newPwd ','','style="width:120px"');
$form-> addElement('password','newPwd2','','style="width:120px"');
$form- >addElement('submit','btnSubmit','Change password','style="width :100px"');
//検証ルールを追加し、JS を自動生成します
$form->addRule('adminPwd' ,『パスワードを空にすることはできません! ','required','','client');
$form->addRule('newPwd','新しいパスワードを空にすることはできません!','required','','client');
$ form ->addRule('newPwd2','新しいパスワードをもう一度入力してください!','required','client');
$form->addRule(array('newPwd','newPwd2'),"Enter 2回 パスワードが一致しません!",'compare','','client');
$form->;//フォーム送信を無効にする
//フォームデータを配列に代入する
$tpl->assign('form_data',$form ->toArray());
//テンプレートを表示
$tpl->display('index.tpl');
?>
[/php]
テンプレートコード:
p< /p>
<{$form_data.attributes}> align="center" cellpadding="3" 3"
bgcolor="#F6F6F6" style="font-size:9pt" class="AddTable">