php+xml结合Ajax实现点赞功能完整实例
发布:smiling 来源: PHP粉丝网 添加日期:2021-05-09 15:27:51 浏览: 评论:0
这篇文章主要介绍了php+xml结合Ajax实现点赞功能的方法,以一个完整实例形式详细分析了XML文件、html页面以及Ajax结合php实现点赞功能的技巧,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了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())
- }
四、通过php来修改xml的数据,一开始调用xml的数据的时候不需要php文件。
- <?php
- $num = $_GET['num'];
- echo $_GET['num'];
- $aindex = $_GET['aindex'];
- $dom=new DOMDocument('1.0');
- $dom->load('index.xml');
- $goodnode=$dom->getElementsByTagName('goodnode');
- $goodnode = $goodnode->item($aindex);
- $items = $goodnode->getElementsByTagName('count');
- foreach($items as $a){
- $a->nodeValue = $_GET['num'];
- }
- $dom->save('index.xml');
- ?>
完成。
Tags: php+xml Ajax点赞功能
相关文章
- ·php+xml实现在线英文词典查询的方法(2021-05-08)
- ·php+xml编程之xpath的应用实例(2021-05-08)
- ·php+xml编程之SimpleXML的应用实例(2021-05-08)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)