+ -
当前位置:首页 → 问答吧 → AJAX+PHP制作的简单留言板

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');

ajax.jpg (24.47 KB)
2008-5-30 09:48

(完!)
-----小弟第一次发帖啊, 大家多多支持下啊。

[ 本帖最后由 function 于 2008-5-30 09:48 编辑 ]

作者: function   发布时间: 2008-05-30

鼓励一下。

作者: luzhou   发布时间: 2008-05-30

看看

作者: iamours   发布时间: 2008-06-01

支持下

作者: 46612206   发布时间: 2008-06-17

热门下载

更多