jquery学习笔记4
Posted on | 二月 25, 2010 | No Comments
header(“Content-Type:text/html; charset=utf-8″);
echo “<div class=’comment’><h6>{$_REQUEST['username']}:</h6><p class=’para’>{$_REQUEST['content']}</p></div>”;
?>
//<![CDATA[
$(function(){
//定义时间戳
timestamp = 0;
//调用更新信息函数
updateMsg();
//表单提交
$("#chatform").submit(function(){
$.post("backend.php",{
message: $("#msg").val(),
name: $("#author").val(),
action: "postmsg",
time: timestamp
}, function(xml) {
//清空信息文本框内容
$("#msg").val("");
//调用解析xml的函数
addMessages(xml);
});
return false; //阻止表单提交
});
});
//更新信息函数,每隔一定时间去服务端读取数据
function updateMsg(){
$.post("backend.php",{ time: timestamp }, function(xml) {
//移除掉 等待提示
$("#loading").remove();
//调用解析xml的函数
addMessages(xml);
});
//每隔4秒,读取一次.
setTimeout('updateMsg()', 4000);
}
//解析xml文档函数,把数据显示到页面上
function addMessages(xml) {
//如果状态为2,则终止
if($("status",xml).text() == "2") return;
//更新时间戳
timestamp = $("time",xml).text();
//$.each循环数据
$("message",xml).each(function() {
var author = $("author",this).text(); //发布者
var content = $("text",this).text(); //内容
var htmlcode = "<strong>"+author+"</strong>: "+content+"<br />";
$("#messagewindow").prepend( htmlcode ); //添加到文档中
});
}
//]]>
</script>
<response>
<status>1</status>
<time>1170323512</time>
<message>
<author>张三</author>
<text>沙发!</text>
</message>
<message>
<author>李四</author>
<text>板凳!</text>
</message>
</response>
// 配置信息:
// 1,数据库连接的具体信息
// 2,我们要存储的消息的数目
// 3,用户进到聊天室的时候消息显示的数目
$dbhost = “localhost”;
$dbuser = “root”;
$dbpass = “root”;
$dbname = “chat”;
$store_num = 10;
$display_num = 10;
// 错误报告
error_reporting(E_ALL);
// 头部信息
header(“Content-type: text/xml”);
header(“Cache-Control: no-cache”);
//连接mysql
$dbconn = mysql_connect($dbhost,$dbuser,$dbpass);
mysql_select_db($dbname,$dbconn);
//为容易操作请求数据,我们为请求中的每个参数设置一个变量,每个变量将把请求中的参数值作为其自己的值
//foreach语句遍历所有的POST数据,并且为每个参数创建一个变量,并且给它赋值
foreach($_POST as $key => $value){
$$key = mysql_real_escape_string($value, $dbconn);
}
//屏敝任何错误提示,判断action是否等于 postmsg
if(@$action == “postmsg”){
//插入数据
mysql_query(“INSERT INTO messages (`user`,`msg`,`time`)
VALUES (‘$name’,'$message’,”.time().”)”,$dbconn);
//删除数据(因为我们默认值存储10条数据)
mysql_query(“DELETE FROM messages WHERE id <= “.
(mysql_insert_id($dbconn)-$store_num),$dbconn);
}
//查询数据
$messages = mysql_query(“SELECT user,msg
FROM messages
WHERE time>$time
ORDER BY id ASC
LIMIT $display_num”,$dbconn);
//是否有新记录
if(mysql_num_rows($messages) == 0) $status_code = 2;
else $status_code = 1;
//返回xml数据结构
echo “<?xml version=\”1.0\”?>\n”;
echo “<response>\n”;
echo “\t<status>$status_code</status>\n”;
echo “\t<time>”.time().”</time>\n”;
if($status_code == 1){ //如果有记录
while($message = mysql_fetch_array($messages)){
$message['msg'] = htmlspecialchars(stripslashes($message['msg']));
echo “\t<message>\n”;
echo “\t\t<author>$message[user]</author>\n”;
echo “\t\t<text>$message[msg]</text>\n”;
echo “\t</message>\n”;
}
}
echo “</response>”;
?>
再来是数据库sql.sql
–Database “chat”
CREATE TABLE `messages` (
`id` int(7) NOT NULL auto_increment,
`user` varchar(255) NOT NULL,
`msg` text NOT NULL,
`time` int(9) NOT NULL,
PRIMARY KEY (`id`)
);
相关文章:
评论|Comments
留言|Leave a Reply
![如果您自认为是一位忠实的Silverlight-Fans,那么请将此标志放到您的博客中成为一名真正的[银光使者]](http://images.cnblogs.com/cnblogs_com/alamiye010/Silverlighter1.jpg)