Heim php教程 php手册 Smarty+QUICKFORM小小演示

Smarty+QUICKFORM小小演示

Jun 13, 2016 pm 12:33 PM
smarty 公司 开发 模式 演示 von 结合 需要

由于公司需要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的应用,我会继续和大家分享学习心得,嘿嘿!
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Was bewirkt der „Bitte nicht stören'-Modus von WeChat? Was bewirkt der „Bitte nicht stören'-Modus von WeChat? Feb 23, 2024 pm 10:48 PM

Was bedeutet der „Bitte nicht stören“-Modus von WeChat? Mit der Popularität von Smartphones und der rasanten Entwicklung des mobilen Internets sind Social-Media-Plattformen zu einem unverzichtbaren Bestandteil des täglichen Lebens der Menschen geworden. WeChat ist eine der beliebtesten Social-Media-Plattformen in China und fast jeder hat ein WeChat-Konto. Über WeChat können wir in Echtzeit mit Freunden, Familie und Kollegen kommunizieren, Momente in unserem Leben teilen und die aktuelle Situation des anderen verstehen. Allerdings sind wir in dieser Zeit zwangsläufig auch mit den Problemen der Informationsüberflutung und des Verlusts der Privatsphäre konfrontiert, insbesondere für diejenigen, die sich konzentrieren müssen oder

Vier empfohlene KI-gestützte Programmiertools Vier empfohlene KI-gestützte Programmiertools Apr 22, 2024 pm 05:34 PM

Dieses KI-gestützte Programmiertool hat in dieser Phase der schnellen KI-Entwicklung eine große Anzahl nützlicher KI-gestützter Programmiertools zu Tage gefördert. KI-gestützte Programmiertools können die Entwicklungseffizienz verbessern, die Codequalität verbessern und Fehlerraten reduzieren. Sie sind wichtige Helfer im modernen Softwareentwicklungsprozess. Heute wird Dayao Ihnen 4 KI-gestützte Programmiertools vorstellen (und alle unterstützen die C#-Sprache). https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot ist ein KI-Codierungsassistent, der Ihnen hilft, Code schneller und mit weniger Aufwand zu schreiben, sodass Sie sich mehr auf Problemlösung und Zusammenarbeit konzentrieren können. Git

„Bitte nicht stören'-Modus funktioniert auf dem iPhone nicht: Behebung „Bitte nicht stören'-Modus funktioniert auf dem iPhone nicht: Behebung Apr 24, 2024 pm 04:50 PM

Selbst das Beantworten von Anrufen im Modus „Bitte nicht stören“ kann ein sehr lästiges Erlebnis sein. Wie der Name schon sagt, deaktiviert der Modus „Bitte nicht stören“ alle Benachrichtigungen über eingehende Anrufe und Warnungen von E-Mails, Nachrichten usw. Sie können diesen Lösungssätzen folgen, um das Problem zu beheben. Fix 1 – Fokusmodus aktivieren Aktivieren Sie den Fokusmodus auf Ihrem Telefon. Schritt 1 – Wischen Sie von oben nach unten, um auf das Kontrollzentrum zuzugreifen. Schritt 2 – Aktivieren Sie als Nächstes den „Fokusmodus“ auf Ihrem Telefon. Der Fokusmodus aktiviert den „Bitte nicht stören“-Modus auf Ihrem Telefon. Es werden keine Benachrichtigungen über eingehende Anrufe auf Ihrem Telefon angezeigt. Fix 2 – Fokusmodus-Einstellungen ändern Wenn es Probleme mit den Fokusmoduseinstellungen gibt, sollten Sie diese beheben. Schritt 1 – Öffnen Sie Ihr iPhone-Einstellungsfenster. Schritt 2 – Als nächstes schalten Sie die Fokusmodus-Einstellungen ein

Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Welcher KI-Programmierer ist der beste? Entdecken Sie das Potenzial von Devin, Tongyi Lingma und SWE-Agent Apr 07, 2024 am 09:10 AM

Am 3. März 2022, weniger als einen Monat nach der Geburt von Devin, dem weltweit ersten KI-Programmierer, entwickelte das NLP-Team der Princeton University einen Open-Source-KI-Programmierer-SWE-Agenten. Es nutzt das GPT-4-Modell, um Probleme in GitHub-Repositorys automatisch zu lösen. Die Leistung des SWE-Agenten auf dem SWE-Bench-Testsatz ist ähnlich wie die von Devin, er benötigt durchschnittlich 93 Sekunden und löst 12,29 % der Probleme. Durch die Interaktion mit einem dedizierten Terminal kann der SWE-Agent Dateiinhalte öffnen und durchsuchen, die automatische Syntaxprüfung verwenden, bestimmte Zeilen bearbeiten sowie Tests schreiben und ausführen. (Hinweis: Der obige Inhalt stellt eine geringfügige Anpassung des Originalinhalts dar, die Schlüsselinformationen im Originaltext bleiben jedoch erhalten und überschreiten nicht die angegebene Wortbeschränkung.) SWE-A

Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Erfahren Sie, wie Sie mobile Anwendungen mit der Go-Sprache entwickeln Mar 28, 2024 pm 10:00 PM

Tutorial zur Entwicklung mobiler Anwendungen in der Go-Sprache Da der Markt für mobile Anwendungen weiterhin boomt, beginnen immer mehr Entwickler damit, sich mit der Verwendung der Go-Sprache für die Entwicklung mobiler Anwendungen zu befassen. Als einfache und effiziente Programmiersprache hat die Go-Sprache auch großes Potenzial für die Entwicklung mobiler Anwendungen gezeigt. In diesem Artikel wird detailliert beschrieben, wie die Go-Sprache zum Entwickeln mobiler Anwendungen verwendet wird, und es werden spezifische Codebeispiele angehängt, um den Lesern den schnellen Einstieg und die Entwicklung eigener mobiler Anwendungen zu erleichtern. 1. Vorbereitung Bevor wir beginnen, müssen wir die Entwicklungsumgebung und die Tools vorbereiten. Kopf

Zu welchem ​​Unternehmen gehört Blue Star Travel Yao? Zu welchem ​​Unternehmen gehört Blue Star Travel Yao? Mar 22, 2024 pm 03:41 PM

Blue Star Travel Yao steht nach der Veröffentlichung eines Werbevideos ganz oben auf der Liste. Viele Spieler sind sehr neugierig, von welchem ​​Unternehmen Blue Star Travel Yao stammt. Tatsächlich handelt es sich um ein neues Spiel des Shanghaier 2D-Herstellers Manjiu. Der folgende Herausgeber wird es Ihnen erklären. Hier ist die Einführung der Blue Star Yuanluyao Game Company. Kommen Sie und schauen Sie sich gemeinsam um. Von welchem ​​Unternehmen stammt Blue Star Travel Yao? Antwort: Es wurde von Manjiu Network ins Leben gerufen. 1. Zunächst einmal ist Blue Star Travel Yao ein Spiel von Manjus Big World RPG. Am 20. März wurde ein Werbevideo veröffentlicht. 2. Dieses Produkt erhält seine Versionsnummer im Oktober 2023. Die Marke und die Betriebseinheit des Spiels sind beide unter dem Namen eines Unternehmens mit dem Namen eingetragen. Letzteres wurde im Februar 2023 gegründet und auf der offiziellen Website ist zu sehen, dass sich der Hauptsitz in Singapur befindet. 3. Das zeigte das diesmal veröffentlichte 11-minütige Werbevideo

Zu welchem ​​Unternehmen gehört die Hands-App? Zu welchem ​​Unternehmen gehört die Hands-App? Mar 13, 2024 am 11:10 AM

Hands-on ist eine brandneue Chat- und Dating-Software. Welches Unternehmen ist also die Hand-on-hand-App? Diese Software wurde von Tianjin Laifu Cultural Development Co., Ltd. erstellt. Sie können sie von der Xiaomi Mall und der Apple Mall herunterladen. Diese Einführung in das Unternehmen zur Erstellung von Hands-on-Apps kann Ihnen die spezifischen Methoden erläutern. Im Folgenden finden Sie eine detaillierte Einführung. Schauen Sie sich also um. Um welches Unternehmen handelt es sich bei der Qianshou-App? Antwort: Tianjin Laifu Cultural Development Co., Ltd. Detaillierte Beschreibung: Auf der offiziellen Software-Website https://www.qianshouapp.cn/ können Sie unten den Firmennamen sehen. Einführung in die Software: 1. Sie kann nach den Bedingungen filtern, die den Benutzern gefallen, und die benötigten Objekte schneller finden. 2. Es kann Benutzern helfen, schneller nach den benötigten Objekten zu suchen.

Welche Linux-Distribution eignet sich am besten für die Android-Entwicklung? Welche Linux-Distribution eignet sich am besten für die Android-Entwicklung? Mar 14, 2024 pm 12:30 PM

Die Android-Entwicklung ist eine arbeitsreiche und spannende Aufgabe, und die Auswahl einer geeigneten Linux-Distribution für die Entwicklung ist besonders wichtig. Welche der vielen Linux-Distributionen eignet sich am besten für die Android-Entwicklung? In diesem Artikel wird dieses Problem unter verschiedenen Aspekten untersucht und spezifische Codebeispiele aufgeführt. Werfen wir zunächst einen Blick auf einige derzeit beliebte Linux-Distributionen: Ubuntu, Fedora, Debian, CentOS usw. Sie alle haben ihre eigenen Vorteile und Eigenschaften.

See all articles