使用xml、php和Ajax实现点赞功能

前端之家收集整理的这篇文章主要介绍了使用xml、php和Ajax实现点赞功能前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

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


一、准备好xml

<?xmlversion="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

<divid="goodcount">
<span>0</span><buttononclick="goodplus(0);">good+1</button>

<span>0</span><buttononclick="goodplus(1);">good+1</button>

<span>0</span><buttononclick="goodplus(2);">good+1</button>

<span>0</span><buttononclick="goodplus(3);">good+1</button>
</div>

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

varspan=document.getElementsByTagName('span');
varnum;
varflag=0;

for(vari=1;i<span.length+1;i++){
senddata(i);
}

functiongoodplus(gindex){
flag=1;
num=parseInt(span.item(gindex).innerHTML);
if(checkcookie(gindex)==true){
num=num+1;
senddata(gindex);
}else{
alert("你已经点过赞咯!")
}
}

functionsenddata(aindex){
varxmlhttp;
vartxt;
if(window.XMLHttpRequest){
xmlhttp=newXMLHttpRequest();
}else{
xmlhttp=newActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function(){
if(xmlhttp.readyState==4&&xmlhttp.status==200){
if(flag==0){
xmldoc=xmlhttp.responseXML;
varcount=xmldoc.getElementsByTagName('count');
varspan2=document.getElementsByTagName('span');
for(varj=0;j<count.length;j++){
span2.item(j).innerHTML=count[j].childNodes[0].nodeValue;
}
}elseif(flag==1){
xmldoc2=xmlhttp.responseText;
varspan3=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
functioncheckcookie(gindex){
varthiscookie='sdcity_foodmap_goodplus'+gindex;
varmapcookie=getCookie(thiscookie)
if(mapcookie!=null&&mapcookie!=""){
returnfalse;
}else{
setCookie(thiscookie,thiscookie,365);
returntrue;
}
}

//获取cookie
functiongetCookie(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;
}
returnunescape(document.cookie.substring(c_start,c_end));//返回内容,解码。
}
}
return"";
}

//设置cookie
functionsetCookie(c_name,value,expiredays){//存入名称,值,有效期。有效期到期事件是今天+有效天数。然后存储cookie,
varexdate=newDate();
exdate.setDate(exdate.getDate()+expiredays)
document.cookie=c_name+"="+escape(value)+((expiredays==null)?"":";expires="+exdate.toGMTString())
}

四、通过PHP修改xml的数据,一开始调用xml的数据的时候不需要PHP文件

<?PHP
$num=$_GET['num'];
echo$_GET['num'];
$aindex=$_GET['aindex'];
$dom=newDOMDocument('1.0');
$dom->load('index.xml');
$goodnode=$dom->getElementsByTagName('goodnode');
$goodnode=$goodnode->item($aindex);
$items=$goodnode->getElementsByTagName('count');
foreach($itemsas$a){
$a->nodeValue=$_GET['num'];
}
$dom->save('index.xml');
?>

完成。

猜你在找的XML相关文章