AJAX+PHP制作的简单留言板
时间:2008-05-30
来源:互联网
一共涉及两个页面,前台ajax.php页面,后台ajaxadd.php添加信息入库页面。
ajax.php页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Ajax GuestBook</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<style type="text/css">
<!--
body { font-size:0.75em;text-align:center;}
dl { margin:0;}
dt { background-color:#666;color:#fff000;margin:1px;padding:0 3px;}
dd { margin:3px;}
div { margin:auto;line-height:150%;text-align:left;;border:1px solid #666;}
#postBox { margin-top:10px;}
dd.button { text-align:center;}
dd.button input { margin:0 20px;}
//-->
</style>
<script type="text/javascript">
<!--
//将用户输入异步提交到服务器
function ajaxSubmit(){
//获取用户输入
var title=document.forms[0].title.value;
var author=document.forms[0].author.value;
var content=document.forms[0].content.value;
//创建XMLHttpRequest对象
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//创建请求结果处理程序
xmlhttp.onreadystatechange=function(){
if (4==xmlhttp.readyState){
if (200==xmlhttp.status){
var date=xmlhttp.responseText;
addToList(date);
}else{
alert("error");
}
}
}
//打开连接,true表示异步提交
xmlhttp.open("post", "ajaxadd.php", true);
//当方法为post时需要如下设置http头
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
//发送数据
xmlhttp.send("title="+escape(title)+"&author="+escape(author)+"&content="+escape(content));
}
//将用户输入显示到页面
function addToList(date){
//获取留言列表div容器
var msg=document.getElementById("msgList");
//创建dl标记及其子标记
var dl=document.createElement("dl");
var dt=document.createElement("dt");
var dd=document.createElement("dd");
var dd2=document.createElement("dd");
//将结点插入到相应的位置
msg.insertBefore(dl,msg.firstChild);
dl.appendChild(dt);
dl.appendChild(dd);
dl.appendChild(dd2);
//填充留言内容
dt.innerHTML="标题:"+document.forms[0].title.value;
dd.innerHTML="作者:"+document.forms[0].author.value+" 日期:"+date;
dd2.innerHTML=document.forms[0].content.value;
//清空用户输入框
document.forms[0].title.value="";
document.forms[0].author.value="";
document.forms[0].content.value="";
}
//-->
</script>
</head>
<body>
<div id="msgList">
<?php
$db=mysql_connect('localhost','root','');
$select=mysql_select_db("ajax");
mysql_query("SET NAMES GBK");
$sql="select title,author,content,date from liuyan order by date desc";
$result=mysql_query($sql);
while($rs=mysql_fetch_array($result))
{
?>
<dl>
<dt>标题:<?php echo $rs['title'];?></dt>
<dd>作者:<?php echo $rs['author'];?> 日期:<?php echo $rs['date'];?></dd>
<dd><?php echo $rs['content'];?></dd>
</dl>
<?php
}
?>
</div>
<div id="postBox">
<form name="theForm" method="post">
<dl>
<dt>发表您的留言</dt>
<dd>标题:<input type="text" maxlength="150" size="45" name="title"/></dd>
<dd>作者:<input type="text" maxlength="50" size="45" name="author"/></dd>
<dd>内容:<textarea rows="10" cols="45" name="content"></textarea></dd>
<dd class="button">
<input type="button" value="提交"/>
<input type="reset" value="重填"/>
</dd>
</dl>
</form>
</div>
</body>
</html>
----------------------------------------------------------------------------------------------------------------------
ajaxadd.php页面
<?php
function unescape($str)//定义unescape解码函数(解决js传递乱码问题)
{
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v)
{
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
$db=mysql_connect('localhost','root','');
$select=mysql_select_db("ajax");
mysql_query("SET NAMES GBK");
$title=unescape($_POST[title]);//调用unescape函数
$author=unescape($_POST[author]);
$content=unescape($_POST[content]);
$date=date("Y-m-d H:i:s");
$sql="insert into liuyan(title,author,content,date) values('$title','$author','$content','$date')";
echo $date;
$result=mysql_query($sql);
mysql_free_result($result);
?>
-------------------------------------------------------------------------------------------------------------------
mysql数据库信息
-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2008 年 05 月 29 日 21:45
-- 服务器版本: 5.0.41
-- PHP 版本: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 数据库: `ajax`
--
-- --------------------------------------------------------
--
-- 表的结构 `liuyan`
--
CREATE TABLE `liuyan` (
`id` int(12) NOT NULL auto_increment,
`title` varchar(30) character set gbk NOT NULL,
`author` varchar(50) character set gbk NOT NULL,
`content` varchar(100) character set gbk NOT NULL,
`date` varchar(30) character set gbk NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=44 ;
--
-- 导出表中的数据 `liuyan`
--
INSERT INTO `liuyan` (`id`, `title`, `author`, `content`, `date`) VALUES
(42, '你好啊', 'function', 'AJAX好好玩啊', '2008-05-29 21:42:42'),
(43, '是么', '小蟑螂', '不是吧!', '2008-05-29 21:43:18');
(完!)
-----小弟第一次发帖啊, 大家多多支持下啊。
[ 本帖最后由 function 于 2008-5-30 09:48 编辑 ]
ajax.php页面
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html>
<head>
<title>Ajax GuestBook</title>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312"/>
<style type="text/css">
<!--
body { font-size:0.75em;text-align:center;}
dl { margin:0;}
dt { background-color:#666;color:#fff000;margin:1px;padding:0 3px;}
dd { margin:3px;}
div { margin:auto;line-height:150%;text-align:left;;border:1px solid #666;}
#postBox { margin-top:10px;}
dd.button { text-align:center;}
dd.button input { margin:0 20px;}
//-->
</style>
<script type="text/javascript">
<!--
//将用户输入异步提交到服务器
function ajaxSubmit(){
//获取用户输入
var title=document.forms[0].title.value;
var author=document.forms[0].author.value;
var content=document.forms[0].content.value;
//创建XMLHttpRequest对象
var xmlhttp;
try{
xmlhttp=new XMLHttpRequest();
}catch(e){
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//创建请求结果处理程序
xmlhttp.onreadystatechange=function(){
if (4==xmlhttp.readyState){
if (200==xmlhttp.status){
var date=xmlhttp.responseText;
addToList(date);
}else{
alert("error");
}
}
}
//打开连接,true表示异步提交
xmlhttp.open("post", "ajaxadd.php", true);
//当方法为post时需要如下设置http头
xmlhttp.setRequestHeader('Content-type','application/x-www-form-urlencoded');
//发送数据
xmlhttp.send("title="+escape(title)+"&author="+escape(author)+"&content="+escape(content));
}
//将用户输入显示到页面
function addToList(date){
//获取留言列表div容器
var msg=document.getElementById("msgList");
//创建dl标记及其子标记
var dl=document.createElement("dl");
var dt=document.createElement("dt");
var dd=document.createElement("dd");
var dd2=document.createElement("dd");
//将结点插入到相应的位置
msg.insertBefore(dl,msg.firstChild);
dl.appendChild(dt);
dl.appendChild(dd);
dl.appendChild(dd2);
//填充留言内容
dt.innerHTML="标题:"+document.forms[0].title.value;
dd.innerHTML="作者:"+document.forms[0].author.value+" 日期:"+date;
dd2.innerHTML=document.forms[0].content.value;
//清空用户输入框
document.forms[0].title.value="";
document.forms[0].author.value="";
document.forms[0].content.value="";
}
//-->
</script>
</head>
<body>
<div id="msgList">
<?php
$db=mysql_connect('localhost','root','');
$select=mysql_select_db("ajax");
mysql_query("SET NAMES GBK");
$sql="select title,author,content,date from liuyan order by date desc";
$result=mysql_query($sql);
while($rs=mysql_fetch_array($result))
{
?>
<dl>
<dt>标题:<?php echo $rs['title'];?></dt>
<dd>作者:<?php echo $rs['author'];?> 日期:<?php echo $rs['date'];?></dd>
<dd><?php echo $rs['content'];?></dd>
</dl>
<?php
}
?>
</div>
<div id="postBox">
<form name="theForm" method="post">
<dl>
<dt>发表您的留言</dt>
<dd>标题:<input type="text" maxlength="150" size="45" name="title"/></dd>
<dd>作者:<input type="text" maxlength="50" size="45" name="author"/></dd>
<dd>内容:<textarea rows="10" cols="45" name="content"></textarea></dd>
<dd class="button">
<input type="button" value="提交"/>
<input type="reset" value="重填"/>
</dd>
</dl>
</form>
</div>
</body>
</html>
----------------------------------------------------------------------------------------------------------------------
ajaxadd.php页面
<?php
function unescape($str)//定义unescape解码函数(解决js传递乱码问题)
{
$str = rawurldecode($str);
preg_match_all("/(?:%u.{4})|.+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v)
{
if(substr($v,0,2) == "%u" && strlen($v) == 6)
$ar[$k] = iconv("UCS-2","GB2312",pack("H4",substr($v,-4)));
}
return join("",$ar);
}
$db=mysql_connect('localhost','root','');
$select=mysql_select_db("ajax");
mysql_query("SET NAMES GBK");
$title=unescape($_POST[title]);//调用unescape函数
$author=unescape($_POST[author]);
$content=unescape($_POST[content]);
$date=date("Y-m-d H:i:s");
$sql="insert into liuyan(title,author,content,date) values('$title','$author','$content','$date')";
echo $date;
$result=mysql_query($sql);
mysql_free_result($result);
?>
-------------------------------------------------------------------------------------------------------------------
mysql数据库信息
-- phpMyAdmin SQL Dump
-- version 2.10.2
-- http://www.phpmyadmin.net
--
-- 主机: localhost
-- 生成日期: 2008 年 05 月 29 日 21:45
-- 服务器版本: 5.0.41
-- PHP 版本: 5.2.5
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- 数据库: `ajax`
--
-- --------------------------------------------------------
--
-- 表的结构 `liuyan`
--
CREATE TABLE `liuyan` (
`id` int(12) NOT NULL auto_increment,
`title` varchar(30) character set gbk NOT NULL,
`author` varchar(50) character set gbk NOT NULL,
`content` varchar(100) character set gbk NOT NULL,
`date` varchar(30) character set gbk NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=44 ;
--
-- 导出表中的数据 `liuyan`
--
INSERT INTO `liuyan` (`id`, `title`, `author`, `content`, `date`) VALUES
(42, '你好啊', 'function', 'AJAX好好玩啊', '2008-05-29 21:42:42'),
(43, '是么', '小蟑螂', '不是吧!', '2008-05-29 21:43:18');

-----小弟第一次发帖啊, 大家多多支持下啊。
[ 本帖最后由 function 于 2008-5-30 09:48 编辑 ]
作者: function 发布时间: 2008-05-30
鼓励一下。

作者: luzhou 发布时间: 2008-05-30
看看
作者: iamours 发布时间: 2008-06-01
支持下
作者: 46612206 发布时间: 2008-06-17
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28