首页 > 开发 > PHP > 正文

php+xml结合Ajax实现点赞功能完整实例

2024-05-04 22:39:28
字体:
来源:转载
供稿:网友

本文实例讲述了php+xml结合Ajax实现点赞功能的方法。分享给大家供大家参考。具体如下:

使用xml、php和Ajax实现点赞功能,不需要链接数据库,使用php来修改xml的内容,使用Ajax直接或许xml的内容。

一、准备好xml:

<?xml version="1.0"?> <goodtree>   <goodnode>     <id>0</id>     <count>17</count>   </goodnode>   <goodnode>     <id>1</id>     <count>37</count>   </goodnode>   <goodnode>     <id>2</id>     <count>67</count>   </goodnode>   </goodtree>

其中ID只是用来看清楚排序的,没有实际的调用作用。

二、准备好HTML

<div id="goodcount">  <span>0</span><button onclick="goodplus(0);">good+1</button>  <span>0</span><button onclick="goodplus(1);">good+1</button>  <span>0</span><button onclick="goodplus(2);">good+1</button>  <span>0</span><button onclick="goodplus(3);">good+1</button></div>

三、JAVASCRIPT 包括Ajax在内,还添加了判断cookie的功能

var span = document.getElementsByTagName('span'); var num; var flag = 0; for(var i = 1; i < span.length + 1; i++){     senddata(i);   } function goodplus(gindex){     flag = 1;     num = parseInt(span.item(gindex).innerHTML);     if(checkcookie(gindex) == true){       num = num + 1;       senddata(gindex);     }else{       alert("你已经点过赞咯!")       } } function senddata(aindex){     var xmlhttp;     var txt;     if(window.XMLHttpRequest){       xmlhttp=new XMLHttpRequest();     }else{       xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");     }     xmlhttp.onreadystatechange=function(){       if(xmlhttp.readyState == 4 && xmlhttp.status == 200){         if(flag == 0){           xmldoc = xmlhttp.responseXML;           var count = xmldoc.getElementsByTagName('count');           var span2 = document.getElementsByTagName('span');           for(var j = 0; j < count.length; j++){             span2.item(j).innerHTML = count[j].childNodes[0].nodeValue;           }         }else if(flag == 1){           xmldoc2 = xmlhttp.responseText;           var span3 = document.getElementsByTagName('span');           span3.item(aindex).innerHTML = xmldoc2;         }       }     }     if(flag == 0){       xmlhttp.open("GET","/ajax/foodmap/index.xml");     }else{       xmlhttp.open("GET","/ajax/foodmap/index.php?num=" + num + "&aindex=" + aindex,true);       }     xmlhttp.send(); } //判断是否已经存在了cookie function checkcookie(gindex){     var thiscookie = 'sdcity_foodmap_goodplus' + gindex;     var mapcookie = getCookie(thiscookie)     if (mapcookie!=null && mapcookie!=""){       return false;     }else {       setCookie(thiscookie,thiscookie,365);       return true;     }   }//获取cookie function getCookie(c_name){//获取cookie,参数是名称。     if (document.cookie.length > 0){//当cookie不为空的时候就开始查找名称        c_start = document.cookie.indexOf(c_name + "=");       if (c_start != -1){//如果开始的位置不为-1就是找到了、找到了之后就要确定结束的位置         c_start = c_start + c_name.length + 1 ;//cookie的值存在名称和等号的后面,所以内容的开始位置应该是加上长度和1         c_end = document.cookie.indexOf(";" , c_start);         if (c_end == -1) {           c_end = document.cookie.length;         }         return unescape(document.cookie.substring(c_start , c_end));//返回内容,解码。       }      }     return ""; } //设置cookie function setCookie(c_name,value,expiredays){//存入名称,值,有效期。有效期到期事件是今天+有效天数。然后存储cookie,     var exdate=new Date();     exdate.setDate( exdate.getDate() + expiredays )     document.cookie = c_name + "=" + escape(value) + ((expiredays==null) ? "" : "; expires=" + exdate.toGMTString()) }             
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表