index.html

 <script src="jquery.min.js"></script>
<script>
$(function(){
$.ajax({ //页面载入时载入评论信息
type:"GET",
url:"10-17.php?act=load&id="+Math.random(),
error:function(){$("#comments").html("获取评论信息失败");},
success:function(data){
$("#comments").html(data); }
});
$("#Submit").click(function(){
title=$("#title").val(); author=$("#author").val(); //获取表单中的数据
email=$("#email").val(); content=$("#content").val(); $.post("10-17.php",{ //发送表单中的数据给addnew.asp
title:escape(title), author:escape(author),
email:escape(email), content:escape(content),
act:"add"
},
function(data){
   alert(data);
if(data==){
$("#title").val(''); $("#author").val(''); //清空添加记录框中的内容
$("#email").val(''); $("#content").val(''); var newcom="<div style='border:1px solid #CCC;margin:5px;'>网友:"+author+" 发表于"+Date()+"<br/>标题:"+title+"<br/>"+content+" Email:"+email+"</div>";
$("#comments").prepend(newcom); //插入到元素内部的最前面 }
} );
} );
} );
</script> </head> <body>
<h3 style="margin:4px; text-align:center">网友评论</h3>
<div id="comments"><!--用来载入评论的内容,未加载完时显示加载中图标-->
<div style="border:1px solid #CCC;margin:5px 5px;"><img src="onLoad.gif" alt="加载中..." /> 评论加载中......</div> </div> <form style="margin:8px;">
<table width="" border="" align="center" cellpadding="" cellspacing="" bgcolor="#333333">
<caption>请在下面发表你的高见吧</caption>
<tbody bgcolor="#ffffff">
<tr>
<td>昵称:</td>
<td><input type="text" id="author"></td>
</tr>
<tr>
<td>邮箱:</td>
<td><input type="text" id="email"></td>
</tr>
<tr>
<td width="">标题:</td>
<td width=""><input type="text" id="title"></td>
</tr> <tr>
<td>内容:</td>
<td><textarea id="content" cols="" rows=""></textarea></td>
</tr>
<tr>
<td></td>
<td><input type="button" id="Submit" value="发表评论"></td>
</tr>
</tbody>
</table>
</form>

10-17.php

<?
header("Content-type: text/html; charset=gb2312"); require('conn.php');
$act=$_REQUEST["act"]; //获取act变量的值
//$act="load";
if($act=="load") { //如果是请求载入评论
$result=$conn->query("select * from lyb order by ID desc limit 3"); if($result->num_rows>) {
while($row=$result->fetch_assoc()){
?>
<div style="border:1px solid #CCC;margin:5px;">
网友:<?= $row["author"] ?> 发表于<?= $row["date"] ?><br/>
标题:<?= $row["title"] ?><br/>
<?= $row["content"] ?> Email:<?= $row["email"] ?>
</div>
<? }
}
else echo "<p>目前还没有用户留言</p>";
}
if($act=="add") {
//'如果是发表评论
$title = unescape($_POST["title"]); //获取10-16.php传来的数据
$author = unescape($_POST["author"]);
$email = unescape($_POST["email"]);
$content = unescape($_POST["content"]);
$date=date("Y-m-d h:i:s");
$sql="Insert into lyb(title,author,email,content,date) values('$title','$author','$email', '$content','$date')"; if($conn->query($sql)) echo ;
} ?>

(1)该评论系统中的新闻是在页面载入之后采用Ajax技术载入进来的,因此HTML代码中可以没有任何用来读取数据表lyb中的评论数据的php代码。

(2)载入评论的容器元素#comments中本来就含有一个“正在加载”的图像和文字,当载入完成之后,这些内容会被评论信息替换掉。达到不用$.ajax()方法的beforeSend()函数也能实现显示“正在加载”图标的效果。

(3)该评论系统也采用了在服务器端和客户端分别插入记录的方法,服务器端插入记录成功后,发送标志1给客户端,客户端采用prepend()方法动态插入div元素。

Ajax制作无刷新评论系统的更多相关文章

  1. ajax无刷新评论示例

    下面就为大家带来一篇 ajax无刷新评论示例.学习还是有点帮助的,给大家做个参考吧. 这是留言板的界面,当用户点击提交留言的时候,自动提交到我的留言下面 留言内容中为空,或者为灰色的“没有填写留言内容 ...

  2. Ajax 实现无刷新页面

    注意:如本文所用,在前面的文章库的数目可以在源代码中找到,我将指示在文本,其中链路,为了缩短制品的长度,阅读由此带来的不便.乞求被原谅. 评论文章 Ajax 实现无刷新页面.其原理.代码库.代码. 这 ...

  3. 使用ajax实现无刷新改变页面内容

    如何使用ajax实现无刷新改变页面内容(也就是ajax异步请求刷新页面),下面通过一个小demo说明一下,前端页面代码如下所示 1 <%@ Page Language="C#" ...

  4. jsp+ajax实现无刷新

    jsp+ajax实现无刷新,鼠标离开文本框即验证用户名 jsp+ajax实现无刷新,鼠标离开文本框即验证用户名(本功能多用于注册) input.jsp(表单提交页面): %@ page content ...

  5. window.history.pushState与ajax实现无刷新更新页面url

    ajax能无刷新更新数据,但是不能更新url HTML5的新API: window.history.pushState, window.history.replaceState 用户操作history ...

  6. Ajax 实现无刷新分页

    Ajax 实现无刷新分页

  7. PHP+Ajax+plupload无刷新上传头像代码

    很简单的一款PHP+Ajax+plupload无刷新上传头像代码,兼容性很好,可以直接拿来用.你可以自定义各种类型的文件.本实例中只能上传"jpg", "png" ...

  8. jQuery+php+ajax实现无刷新上传文件功能

    jQuery+php+ajax实现无刷新上传文件功能,还带有上传进度条动画效果,支持图片.视频等大文件上传. js代码 <script type='text/javascript' src='j ...

  9. JS---案例:无刷新评论---属于创建对象的案例拿出来复习

    案例:无刷新评论---属于创建对象的案例拿出来复习 创建行和单元格,添加到相应元素中,设置内容 createElement, appendChild,innerHTML <!DOCTYPE ht ...

随机推荐

  1. jquery.form上传文件

    建立test文件夹 PHP代码: <?php //var_dump($_FILES['file']);exit; if(isset($_GET['option']) && $_G ...

  2. C期未考试参考答案题1

    输入一个3行5列的矩阵数据,输出矩阵中每行最大值. 输入描述 输入3行5列共15个整数. 输出描述 输出每行的最大值.每个最大值占一行 #include<stdio.h>#include& ...

  3. Gallery过时替代方案HorizontalScrollView

    布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:androi ...

  4. AspectJ的安装和Eclipse的AJDT插件的配置

    一.安装AspectJ:1.从http://www.eclipse.org/aspectj/downloads.php  下载AspectJ(目前发布的最新版为1.8.6);2.解压下载下来的jar文 ...

  5. Interaction with the camera or the photo library

    As we said before, we need a delegate to deal with the user interaction with the camera or the photo ...

  6. python运维开发(十)----IO多路复用线程基本使用

    内容目录: python作用域 python2.7和python3.5的多继承区别 IO多路复用 socketserver模块源分析 多线程.进程.协程 python作用域  python中无块级作用 ...

  7. 今日哈工大刷推荐python脚本

    import httplib import random import time import urllib2 import re address = raw_input("Please i ...

  8. socket简单通信

    粗糙简略的初版,后续多加点功能权当练手 /* ============================================================================ ...

  9. MYSQL create database 和 create table 做了一些什么!

    create database Studio; 这样就可以创建一个数据库了.他包涵一些什么呢? 可以看到它创建了一个文件夹,下面我们进去看一下它里面有一些什么东西. 还是先建一张表再进去吧,运行一下这 ...

  10. 混合使用Azure LB和ILB访问相同web服务(1)

    在经典的使用场景中,我们一般使用AzureLoadBalancer来面向公网提供负载均衡服务,而使用Azure Internal Load Balancer提供内部那些不愿意将服务暴露给公网的服务,比 ...