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

2025-05-29 0 78

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

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

一、准备好xml:

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15
<?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

?

1

2

3

4

5

6
<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的功能

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

85

86

87

88

89

90

91
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文件。

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14
<?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程序设计有所帮助。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。

快网idc优惠网 建站教程 php+xml结合Ajax实现点赞功能完整实例 https://www.kuaiidc.com/102287.html

相关文章

发表评论
暂无评论