折腾一个下午,把smarty和html_QuikForm联结到一起了源码:
test.php
<?php
require_once "HTML/QuickForm.php";
require_once 'HTML/QuickForm/Renderer/ArraySmarty.php';
require_once 'link/myload.php';
$form = new HTML_QuickForm('frmTest', 'get');
$form->addElement('header', 'hdrTesting', 'Smarty&HTML/QuickForm联合编程实验');
$form->addElement('text', 'txtFirstName', '贵姓?');
$form->addElement('text', 'txtLastName', '尊名?');
$form->addElement('text', 'txtAge', '年龄?');
$form->addElement('text', 'txtTelephone', '电话?');
$form->addElement('reset', 'btnClear', '复位');
$form->addElement('submit', 'btnSubmit', '提交');
if ($form->validate()) {
# If the form validates then freeze the data
$form->freeze();
}
// Create the template object
$tpl =$smarty=& new Smarty_my;
$tpl->compile_check = true;
// Create the renderer object
$renderer =& new HTML_QuickForm_Renderer_ArraySmarty($tpl);
// build the HTML for the form
$form->accept($renderer);
// assign array with form data
$tpl->assign('form_data', $renderer->toArray());
// parse and display the template
$tpl->display('my.tpl');
?>
mylink.php
<?php
// load Smarty library
define('myclude',/usr/share/php/smarty');
require(myinclude.'/libs/Smarty.class.php');
//setup.php是一个很好的加载应用程序的类库文件(就是扩展类)
//例如你可以在index文件里包含它
class Smarty_my extends Smarty {
function Smarty_my() {
// Class Constructor. These automatically get set with each new instance.
//类构造函数.创建实例的时候自动配置
$this->Smarty();
$this->template_dir = '/var/www/apache2-default/smarty/xsgl/templates/';
$this->compile_dir = '/var/www/apache2-default/smarty/xsgl/templates_c/';
$this->config_dir = '/var/www/apache2-default/smarty/xsgl/configs/';
$this->cache_dir = '/var/www/apache2-default/smarty/xsgl/cache/';
$this->caching = true;
$this->assign('app_name','xsgl');
}
}
模板文件my.tpl
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- $Id: smarty-guide.tpl,v 1.1 2005/03/03 19:26:54 kae Exp $ -->
<head>
<link rel="stylesheet" type="text/css" href="css/my.css" />
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" >
</head>
<body>
<h2>
</h2>
<form >
<!-- Display the fields -->
<table>
<tr>
<th></th>
<td></td>
<th></th>
<td></td>
</tr>
<tr>
<th></th>
<td></td>
<th></th>
<td></td>
</tr>
<!-- Display the buttons -->
<tr>
<td align="center" colspan="4">
</td>
</tr>
<!-- Display the copyright -->
<tr>
<td color: navy; text-align: center" colspan="4">
©2005 陈刚 实验
</td>
</tr>
</table>
层叠式样表文件my.css
body {
background-color: #10F2E7;
}
table
n {
font-size: small;
font-family: arial, helvetica, sans-serif;
}
table {
overflow: scroll;
margin: 0.1px;
font-weight: lighter;
font-family: arial, helvetica, sans-serif;
}