首頁 php教程 php手册 Smarty+QUICKFORM小小演示

Smarty+QUICKFORM小小演示

Jun 13, 2016 pm 12:33 PM
smarty 公司 開發 模式 示範 結合 需要

由于公司需要quickform结合SMARTY的开发模式,最近几天恶补了下,跟大家分享下心得吧,quickform是一个PEAR类库,可以快速生成表单控件及验证表单的JS代码,大家可能觉得这个用手写JS和HTML生成不是很快吗,用那个不是更麻烦,的确,少量的表单控件是显示不出quickform的优势的,但是如果有大量的表单控件,例如OA的后台,quickform的优势就显示出来了,利用quickform有代码清晰,易于维护等特点,非常适合大中型项目的开发,更方便的是可以在smarty中轻松使用它,^_^废话少说,来看看代码,不过大家之前最好了解下PEAR的安装,参照:http://hi.baidu.com/wanghaozi/blog/item/81cfb7003f973687e850cd3e.html。
    由于公司用的quickform是自己改进过的,因此代码和大家网上看到的会有些差别,涉及版权在这里就不便说明,简要展示下核心代码,大家就当了解下吧,有兴趣的朋友可以看看这篇HAOHAPPY的文章:http://www.phpe.net/articles/418.shtml
    [php]

/*
*作者:辉老大
*页面:path.cfg.php
*功能:系统路径设置
*版权所有:随便copy^_^
*/

$global['path']['conf']     = $global['path']['root'] . 'conf/';//定义系统配置文件路径
$global['path']['lib']      = $global['path']['root'] . 'lib/';//定义系统库文件路径

?>
    [/php]
[php]

/*
*作者:辉老大
*页面:smarty.cfg.php
*功能:smarty基本配置
*版权所有:随便copy^_^
*/

//定义模板路径
$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']             = $global['path']['root'] . 'lib/smarty/cache';

//$global['smarty']['compile_check']         = true;
//设置smarty报错禁用
$global['smarty']['debugging']             = false;
//关闭缓存
$global['smarty']['caching']             = false;
//$global['smarty']['cache_lifetime']     = 6000;

//定义左右边界符
$global['smarty']['left_delimiter']     = '$global['smarty']['right_delimiter']     = '}>';

?>
[/php]
[php]

/*
*作者:辉老大
*页面:common.cfg.php
*功能:全局配置
*版权所有:随便copy^_^
*/

$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->caching             = $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]

/*
*作者:辉老大
*页面:index.php
*功能:UI
*版权所有:随便copy^_^
*/

require_once('common.inc.php');//载入全局配置

//包含quickform类库
require($global['path']['lib'] . 'pear/HTML/QuickForm.php');

$form = new HTML_QuickForm('changepwdform');//生成quickform实例,参数为表单名

/*
*开始添加表单元素
*参数依次为:表单元素类型,名称,(按钮标签文字),样式
*/
$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','修改密码','style="width:100px"');

//增加验证规则,自动生成JS
$form->addRule('adminPwd','密码不能为空!','required','','client');
$form->addRule('newPwd','新密码不能为空!','required','','client');
$form->addRule('newPwd2','请再次输入新密码!','required','client');
$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不一致!",'compare','','client');
$form->;//禁止提交表单

//分配表单数据到数组中
$tpl->assign('form_data',$form->toArray());

//显示模板
$tpl->display('index.tpl');


?>
[/php]
模板代码:

复制代码 代码如下:




quickform+smarty

    




 


 


 


 >
bgcolor="#F6F6F6" style="font-size:9pt" class="AddTable">

  
  
  
    
    
  
  
    
    
  
  
    
    
  
  
    
  
修改管理员密码
现有管理员密码
    
新密码
    
再次输入新密码
    

      
    


īpt>



这里大家也许觉得奇怪,为什么路径要定义这么复杂,而且使用绝对路径呢?这个是最近适应公司项目的需要,呵呵!其实这样有利于部署大的项目。这个帖子相信没接触过quickform或smarty的新手一定看的一头雾水,当然,我在这也只是简单介绍下,希望大家有兴趣的可以继续深入研究,最后看看效果:

看判断两次输入密码是否一样就这一句:
[php]
$form->addRule(array('newPwd','newPwd2'),"两次输入的密码不一致!",'compare','','client');
[/php]
代码看起来是不是简洁清楚啊,呵呵,接下来还会应用到再结合XAJAX的应用,我会继续和大家分享学习心得,嘿嘿!
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

微信的免打擾模式有什麼作用 微信的免打擾模式有什麼作用 Feb 23, 2024 pm 10:48 PM

微信勿擾模式什麼意思如今,隨著智慧型手機的普及和行動網路的快速發展,社群媒體平台已成為人們日常生活中不可或缺的一部分。而微信作為國內最受歡迎的社群媒體平台之一,幾乎每個人都有一個微信帳號。我們可以透過微信與朋友、家人、同事進行即時溝通,分享生活中的點滴,了解彼此的近況。然而,在這個時代,我們也不可避免地面臨資訊過載和隱私洩漏的問題,特別是對於那些需要專注或

四款值得推薦的AI輔助程式工具 四款值得推薦的AI輔助程式工具 Apr 22, 2024 pm 05:34 PM

這個AI輔助程式工具在這個AI快速發展的階段,挖掘出了一大批好用的AI輔助程式工具。 AI輔助程式設計工具能夠提升開發效率、提升程式碼品質、降低bug率,是現代軟體開發過程中的重要助手。今天大姚給大家分享4款AI輔助程式工具(而且都支援C#語言),希望對大家有幫助。 https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot是一款AI編碼助手,可幫助你更快、更省力地編寫程式碼,從而將更多精力集中在問題解決和協作上。 Git

AI程式設計師哪家強?探索Devin、通靈靈碼和SWE-agent的潛力 AI程式設計師哪家強?探索Devin、通靈靈碼和SWE-agent的潛力 Apr 07, 2024 am 09:10 AM

2022年3月3日,距離世界首個AI程式設計師Devin誕生不足一個月,普林斯頓大學的NLP團隊開發了一個開源AI程式設計師SWE-agent。它利用GPT-4模型在GitHub儲存庫中自動解決問題。 SWE-agent在SWE-bench測試集上的表現與Devin相似,平均耗時93秒,解決了12.29%的問題。 SWE-agent透過與專用終端交互,可以開啟、搜尋文件內容,使用自動語法檢查、編輯特定行,以及編寫和執行測試。 (註:以上內容為原始內容微調,但保留了原文中的關鍵訊息,未超過指定字數限制。)SWE-A

請勿打擾模式在iPhone中不起作用:修復 請勿打擾模式在iPhone中不起作用:修復 Apr 24, 2024 pm 04:50 PM

即使在「請勿打擾」模式下接聽電話也可能是一種非常煩人的體驗。顧名思義,請勿打擾模式可關閉來自郵件、訊息等的所有來電通知和警報。您可以按照這些解決方案集進行修復。修復1–啟用對焦模式在手機上啟用對焦模式。步驟1–從頂部向下滑動以存取控制中心。步驟2–接下來,在手機上啟用「對焦模式」。專注模式可在手機上啟用「請勿打擾」模式。它不會讓您的手機上出現任何來電提醒。修復2–更改對焦模式設定如果對焦模式設定中存在一些問題,則應進行修復。步驟1–打開您的iPhone設定視窗。步驟2–接下來,開啟「對焦」模式設

學習如何利用Go語言開發行動應用程式 學習如何利用Go語言開發行動應用程式 Mar 28, 2024 pm 10:00 PM

Go語言開發行動應用程式教學隨著行動應用程式市場的不斷蓬勃發展,越來越多的開發者開始探索如何利用Go語言開發行動應用程式。作為一種簡潔高效的程式語言,Go語言在行動應用開發中也展現了強大的潛力。本文將詳細介紹如何利用Go語言開發行動應用程序,並附上具體的程式碼範例,幫助讀者快速入門並開始開發自己的行動應用程式。一、準備工作在開始之前,我們需要準備好開發環境和工具。首

藍色星原旅謠是哪個公司的 藍色星原旅謠是哪個公司的 Mar 22, 2024 pm 03:41 PM

藍色星原旅謠在近期公佈宣傳片之後登上了遊戲熱榜,許多玩家都非常好奇藍色星原旅謠是哪個公司的,其實是來自上海二次元廠商蠻啾新作,下面小編會為大家帶來藍色星原旅謠遊戲公司介紹,快來一起看看吧。藍色星原旅謠是哪一家公司的答案:是蠻啾網路推出的。 1.首先藍色星原旅謠是蠻啾旗下大世界RPG所推出的一款遊戲,已經在3月20日公佈了宣傳片。 2.這款產品在2023年10月拿到版號。遊戲的商標及營運單位均登記在一家叫的公司名下,後者成立於2023年2月,官網顯示其總部位於新加坡。 3.此次發布的11分鐘宣傳片裡透露出這

Android開發最適合的Linux發行版是哪一個? Android開發最適合的Linux發行版是哪一個? Mar 14, 2024 pm 12:30 PM

Android開發是一項繁忙而又令人興奮的工作,而選擇適合的Linux發行版來進行開發則顯得尤為重要。在眾多的Linux發行版中,究竟哪一個最適合Android開發呢?本文將從幾個方面來探討這個問題,並給出具體的程式碼範例。首先,我們來看看目前流行的幾個Linux發行版:Ubuntu、Fedora、Debian、CentOS等,它們都有各自的優點和特點。

牽手app是哪家公司的 牽手app是哪家公司的 Mar 13, 2024 am 11:10 AM

牽手是全新的聊天交友軟體,那麼牽手app是哪家公司的呢?這個軟體是由天津來福文化發展有限公司創立的,大家可以在小米商城和蘋果商城下載。這篇牽手app創建公司介紹就能夠告訴大家具體的方法,以下就是詳細的介紹,趕快看看吧。牽手app是哪家公司的答:天津來福文化發展有限公司詳細說明:在軟體官網https://www.qianshouapp.cn/中,大家可以在底部看到公司名字。軟體介紹:1、能夠依照使用者喜歡的條件篩選,可以更快的找到自己需要的物件。 2、可以幫助用戶更快的搜尋需要的對象,可以

See all articles