来自:http://www.verydemo.com/demo_c107_i942.html
在上一篇文章中,我讲解了如何用jQuery实现输入表单的实时字数统计和Ajax提交数据到后台的功能。本文将重要介绍后台是如何处理前台提交的数据,并返回结果的。
先还是要说明本例的业务流程:
1、前端用户输入内容,并对输入的内容字数进行实时统计。
2、用户提交数据,jQuery实现通过Ajax向后台发送数据。
3、后台PHP接收提交表单的数据,并对数据进行必要的安全过滤。
4、后台PHP连接Mysql数据库,并将提交过来的表单数据写入到相应的数据表中。
5、后台向返回成功结果数据内容,并通过Ajax将返回的数据内容插入到前端页面中。
上述1、2步在前篇文章:jQuery篇已讲解了,本文将完成剩余的散步。
数据表
首先我们要准备一个数据表,表结构如下:
CREATE TABLE `say` (
`id` int() NOT auto_increment,
`userid` int() NOT ,
`content` varchar() NOT ,
`addtime` int() NOT ,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
注意,本例中将时间字段:addtime的类型设置为int,是为了后续的时间处理方便,在很多应用中(如Discuz论坛)都是将时间类型转成数字型。
时间轴处理函数和格式化输出列表函数:
时间轴处理函数,就是把时间转换成我们看到的诸如“5分钟前”,“昨天 10:21”等形式,详细使用可以查看之前我写过的文章:PHP实现时间轴函数,代码如下:
tranTime() {
= date(,);
= date(,);
= time() - ;
( < ) {
= ;
}
( < * ) {
= floor(/);
= .;
}
( < * * ) {
= floor(/(*));
= ..;
}
( < * * * ) {
= floor(/(**));
(==)
= .;
= .;
}
{
= ;
}
;
}
格式化输出函数是将得到的用户信息和发布内容及时间按照一定的格式输出到前端页面的函数,代码如下:
formatSay(,,){
=htmlspecialchars(stripslashes());
.....
preg_replace(,,)..tranTime().;
}
将以上两个函数都放入function.php中,准备随时被调用。
submit.php处理表单数据
....................................................................
();
();
=stripslashes([]);
=mysql_real_escape_string(strip_tags(),);
(mb_strlen()< || mb_strlen()>)
();
=time();
=rand(,);
=mysql_query();
(mysql_affected_rows()!=)
();
formatSay(,,);
注意,本例中为了演示,将用户ID(userid)进行随机处理,实际的应用是获取当前用户的ID。另外数据库连接文件,大家可以自己写一个,在我提供的下载的DEMO里也有这个文件。
最后要回到前端页面index.php来。index.php主要除了提供输入的入口,还要承接后台处理返回的结果,并且要将数据库里已有的数据显示出来。代码如下:
define(,);
();
();
=mysql_query();
(=mysql_fetch_array()) {
.=formatSay([content],[addtime],[userid]);
}
= = =
=140说说你正在做什么...
= = = = = =
= = = =
=
=
=
;
查看演示DEMO
至此,本例从前端交互到后台处理程序,全部完成,有兴趣的同学最好亲自动手,才能从中学到乐趣。
转自:http://www.helloweba.com/view-blog-67.html