为了账号安全,请及时绑定邮箱和手机立即绑定

多个帖子的 PHP 投票系统

多个帖子的 PHP 投票系统

PHP
慕运维8079593 2021-11-26 15:18:22
我有一个可用的 PHP Ajax 投票系统,可以将博客文章中的赞写入 .txt 文件,我想将其扩展为多个帖子并记录每个帖子的赞。我试图更改“onclick”值,但似乎我使用的脚本限制了我。HTML<span id="like"><a href="javascript:" name="vote"value="0" onclick="getVote(this.value)">Like</a></span>爪哇脚本function getVote(int){    if(window.XMLHttpRequest){        xmlhttp=new XMLHttpRequest()    }else{        xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")    }   xmlhttp.onreadystatechange=function({        if(this.readyState==4&&this.status==200{            document.getElementById("like").innerHTML=this.responseText        }   };    xmlhttp.open("GET","vote.php?vote="+int,true);    xmlhttp.send()}PHP<?php $vote=$_REQUEST['vote'];$filename="votes.txt";$content=file($filename);$array=explode("-",$content[0]);$yes=$array[0];if($vote==0){    $yes=$yes+1;}$insertvote=$yes;$fp=fopen($filename,"w");fputs($fp,$insertvote);fclose($fp);?>我是否应该为每个想要保存喜欢的帖子编写不同的 .php 文件?
查看完整描述

1 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

这里有 2 个问题:
1. 你不能命名你的变量,int这是一个保留关键字,所以将它重命名为x
2. 你的 js-fiddle 设置为 onload。这会将您的 javascript 包装在一个函数中。在您的小提琴中转到Javascript + no library (pure js)选择器,然后No-wrap bottom of headLoad Type选项中选择 Reserved Javascript-keywords

现在:关于缩放。
如果你想扩展这个而不使用数据库......你可以为每个帖子都有一个投票文件。然后 ud 只需将帖子名称传递给 ajax 调用,您的 php 脚本将打开文件,读取数字,将其增加 1 并关闭它。或者您可以将它们存储在单个文件中并在您需要时解析内容。所以我 ud 有一个由 <postid>:<votes>,... 组成的文件,并使用explode 解析这个文件。然而,如何扩展这个问题一般来说太宽泛了


查看完整回答
反对 回复 2021-11-26
  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信