• 技术文章 >php教程 >php手册

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

    2016-06-13 09:16:04原创467

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


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

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

    一、准备好xml:

    <?xml version="1.0"?> 
     
       
        0 
        17 
       
       
        1 
        37 
       
       
        2 
        67 
         
    
    
    

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

    二、准备好HTML

    0 0 0 0

    三、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'); 
    ?>

    完成。

    希望本文所述对大家的php程序设计有所帮助。

    声明:本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn核实处理。
    专题推荐:php xml Ajax php
    上一篇:php简单防刷计数器-PHP实例 下一篇:自己动手写 PHP MVC 框架(40节精讲/巨细/新人进阶必看)

    相关文章推荐

    • JavaScript+PHP应用一:网页• PHP之判断用户语言跳转网页• PHP代码:Http断点续传的实现例子• php图片处理:加水印、缩略图的实现(自定义函数:watermark、thumbnail)• 《PHP边学边教》(02.Apache+PHP环境配置下篇)
    1/1

    PHP中文网