php无刷新留言评论系统,ajax设计无刷新的评论系统实现代码

我们在制作自己的网站时,一般会开放博客的评论系统,以供博主和访客互动,大家可以看到wordpress博客评论系统就是利用ajax技术实现的无刷新的模块。ajax实际并不复杂,我们多多少少都有接触,js前台+asp/php等后台服务器脚本之间的交互。

飘易花了点时间,把飘易博客的评论系统也改成了ajax无刷新评论系统。主要有这样的一个 js 文件,例如我的命名为 com.js,以及对应的后台服务器脚本,如asp\php文件。

剩下的就是利用ajax提交给后台服务器脚本处理了,返回相应的处理后的代码给js,回传显示就ok了,当然,下面的代码没有加入一些判断,比如是否为空,是否含非法关键字等的判断,你可以自行增加修改。

com.js代码:

//利用AJAX的无刷新评论

function subok(){

var xmlhttp;

try{

xmlhttp = new XMLHttpRequest();

}catch(e){

try{

xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");

}catch(e){

try{

xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");

}catch(e){

xmlhttp = null;

alert("您的浏览器不支持XMLHTTP,无法完成此操作!");

}

}

}

xmlhttp.open("POST", "../addcom.asp", false);

xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=gb2312");

xmlhttp.send("c_id1="+document.getElementById('c_id1').value+"&c_name="+escape(document.getElementById('c_name').value)+"&c_email="+escape(document.getElementById('c_email').value)+"&c_site="+escape(document.getElementById('c_site').value)+"&c_content="+escape(document.getElementById('c_content').value));

if(xmlhttp.status==200){

strText = xmlhttp.responseText;

document.getElementById("commtwait").innerHTML=strText;

document.getElementById("c_content").value="";

}

}

几个注意点:1、js是对大小写敏感的。 2、后台服务器脚本要做好安全判断,js毕竟是客户端的东西,我们不可全部相信。 3、 js和asp后台之间的汉字编码问题,我们可以同时指定它们均为 gb2312 编码。4、提交的时候不要用 form 表单提交,直接使用 这样的 onclick 事件提交。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
对初学AJAX的同学会有帮助的。 ----------ajax.js--------------- var request = false; try { request = new XMLHttpRequest(); } catch (trymicrosoft) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); } catch (othermicrosoft) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); } catch (failed) { request = false; } } } if (!request) alert("Error initializing XMLHttpRequest!"); function getCustomerInfo() { document.getElementById("output").innerHTML = "Loading..."; document.getElementById("submit").disabled = true; var name = document.getElementById("name").value; var text = document.getElementById("text").value; var key = document.getElementById("key").value; var answer = document.getElementById("answer").value; var poststr = "name="+name+"&text="+text+"&key="+key+"&answer="+answer; var url = "doit.php"; request.open("POST", url, true); request.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); request.send(poststr); request.onreadystatechange = updatePage; } function updatePage() { if (request.readyState == 4) if (request.status == 200) document.getElementById("output").innerHTML = request.responseText; else if (request.status == 404) alert("目标地址不存在"); else alert("警告: 错误代码 " + request.status); } function getInfo() { document.getElementById("output1").innerHTML = "Loading..."; var url = "show.php"; var d = new Date().getTime(); request.open("GET", url+"?d="+d.toString(), true); request.onreadystatechange = updatePage1; request.send(); } function updatePage1() { if (request.readyState == 4) if (request.status == 200) document.getElementById("output1").innerHTML = request.responseText; else if (request.status == 404) alert("目标地址不存在"); else alert("警告: 错误代码 " + request.status); }
实现提交评论并自动刷新,可以通过以下步骤使用 AJAX: 1. 创建一个包含评论表单和显示评论的 HTML 页面。 2. 在页面中添加一个用于触发 AJAX 请求的提交按钮。 3. 使用 AJAX 发送评论数据到服务器。可以使用 jQuery 的 $.ajax() 函数来实现。具体来说,可以使用以下代码: ``` $.ajax({ type: "POST", url: "submit_comment.php", data: $("#comment_form").serialize(), success: function() { // 处理成功响应 }, error: function() { // 处理错误响应 } }); ``` 其中,submit_comment.php 是用于处理提交评论PHP 脚本,#comment_form 是包含评论表单的表单元素的 ID。 4. 在服务器端处理提交评论的逻辑,并将结果返回给客户端。例如,可以将提交的评论保存到数据库中。 5. 在 AJAX 请求成功后,使用 JavaScript 更新评论列表。例如,可以使用以下代码: ``` $.ajax({ type: "POST", url: "get_comments.php", success: function(data) { $("#comment_list").html(data); }, error: function() { // 处理错误响应 } }); ``` 其中,get_comments.php 是用于获取评论列表的 PHP 脚本,#comment_list 是显示评论的元素的 ID。 6. 将以上步骤封装到一个函数中,并在页面加载时调用该函数。同时,可以使用 setInterval() 函数定时调用该函数,以实现自动刷新评论列表的效果。例如,可以使用以下代码: ``` function refreshComments() { $.ajax({ // 发送评论数据到服务器 }).done(function(){ // 更新评论列表 }); } $(document).ready(function() { // 页面加载时刷新评论列表 refreshComments(); // 每隔 10 秒钟自动刷新评论列表 setInterval(refreshComments, 10000); }); ``` 这样就可以实现提交评论并自动刷新的效果了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值