当前位置:编程学习 > php >>

Smarty结合Ajax实现无刷新留言本实例

答案:

看了标题你也许要说,留言本,很基本的东东啊!谁不会啊,还要用Smarty,这不找累吗?别急,我要表达的是一种编程的思想和结构,而不是证明我做的东西多有意义,通过它相信对初学者学习Smarty和ajax有些启发。原本用ajax做的,可惜始终调试不成功,只好用手写JS来弄了,不过不要紧,还是有一定价值的。站点结构大家下了源代码自己看,代码不长,应该不会看烦^_^,听我慢慢道来。
现在都PHP5了OO(面向对象)很流行了都,这里也不错过,首先来看下我们用OO来实现数据库操作和连接:
[php]
<?php
/**************************

页面:dbclass.php
作者:辉老大
功能:定义数据库操作类
**************************/
<?php
/**************************

页面:dbclass.php
作者:辉老大
功能:定义数据库操作类
**************************/
class db
{
//创建构造函数,作用:数据库连接并选择相应数据库
public function __construct
(){
require(
'config.inc.php'
);
mysql_connect($dbhost,$dbuser,$dbpassword) or die("error!"
);
mysql_query("SET NAMES 'GBK'"
);
mysql_select_db($dbname
);
}
//执行SQL语句函数
public function query($sql
){
return
mysql_query($sql
);
}
//取得结果集数组函数
public function loop_query($result
){
return
mysql_fetch_array($result
);
}
//创建析构函数,作用:关闭数据库连接
public function __destruct
(){
return
mysql_close
();
}
}
?>

这个类有什么特点呢?首先介绍下__construct()是构造函数,啥是构造函数?通俗点讲就是类被实例化后就自动执行的函数,__destruct()是啥?是析构函数,它的作用就是在没有任何方法指向这个对象时,便自动销毁对象,里面一般包含一些收尾的操作,比如关闭文件,关闭数据库连接之类的方法,看到这你是不是明白一些了?没错!在类实例化的时候自动执行带有数据库连接方法的构造函数,在实例销毁的时候执行关闭数据库连接的析构函数,对于一些基本数据操作我们只要new一个$db对象,然后$db->query()...是不是很方便,当然,这只是一个简单的例子,你还可以继续扩展。来看看 config.inc.php里面是什么:
很容易对不对,感兴趣就接着看吧^_^,来看下模板文件:

<?php
/*************************

页面:config.inc.php
作者:辉老大
功能:数据库参数变量设定
$dbhost:主机名
$dbuser:连接帐户
$dbpassword:连接密码
$dbname:数据库名
*************************/
$dbhost = "localhost"
;
$dbuser = "root"
;
$dbpassword = "7529639"
;
$dbname = "testdb"
;
?>


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gbk" />
<title><{$title}></title>
<style type="text/css">
<!--
.username {
height: 20px;
width: 250px;
}
.comment {
height: 100px;
width: 660px;
}
body,td,tr {
font-size: 9pt;
}
-->
</style>
<script language="javascript" src="./inc/ajax.js"></script>
</head>
<body>
<div align="right" id="check"></div>
<div id="result"><{*这里显示留言内容*}>
<{section name=loop loop=$bookinfo}><{*循环显示留言*}>
用户名:<{$bookinfo[loop].username}> 内容:<{$bookinfo[loop].comment}><p>
<{/section}>
</div>
<form method="post" name="book" id="book">
<table width="760" border="1" cellpadding="0" cellspacing="0">
<tr>
<td width="80" height="30" align="center">用户名:</td>
<td height="30"> <input name="username" type="text" class="username" id="username"></td>
</tr>
<tr>
<td width="80" height="120" align="center">留言内容:</td>
<td height="120"> <textarea name="comment" class="comment" id="comment"></textarea></td>
</tr>
</table>
<input type="button" name="button" value="发布" onClick="send('result');">
</form>
</body>
</html>

模板中的内容在<{}>中的一会会被PHP替换掉,这就实现了美工和程序员的分工,不错吧有关Smarty的内容还请参考手册,这里就不便多说。来看下页面是怎么输出模板的吧:

<?php
/*****************************************
Title :Smarty结合Ajax留言板实例
Author:leehui1983(辉老大)
Page Name:index.php
Finish Date :2006-12-17
********************************

上一个:影响PHP+MYSQL执行速度的写法对比第1/7页
下一个:URL Rewrite的设置方法

CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,