如何为多个职位扩展PHP投票系统?

sqyvllje  于 2023-02-18  发布在  PHP
关注(0)|答案(1)|浏览(94)

如何为多个职位扩展PHP投票系统?
我有一个正在工作的PHP Ajax投票系统,它将博客帖子中的喜欢写入一个. txt文件,我想将它扩展到多个帖子,并记录每个帖子的喜欢。
我试过改变"onclick"的值,但是我使用的脚本似乎限制了我。我对Stackoverflow和其他平台做了广泛的研究,并尝试了许多实现。请你帮助我完成下面的代码,并为我指出正确的方向?
超文本标记语言

<span id="like"><a href="javascript:" name="vote"
value="0" onclick="getVote(this.value)">Like</a></span>

java 脚本

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);
?>

Fiddle

8hhllhi2

8hhllhi21#

这里有两个问题:
1.你不能命名你的变量int这是一个保留关键字所以重命名它为x
2.你的js-fiddle被设置为onload.这将 Package 你的javascript在一个函数中.在你的fiddle中转到Javascript + no library (pure js)选择器然后在Load Type选项中选择No-wrap bottom of headReserved Javascript-keywords
现在,关于扩展。
如果你不想使用数据库,你可以为每个帖子创建一个投票文件,然后你只需要把帖子的名字传递给 AJAX 调用,你的php脚本就会打开这个文件,读取数字,增加1,然后关闭它。或者你可以把它们存储在一个单独的文件中,然后在你需要的时候解析内容。并使用explode解析此文件。但是,如何扩展此文件的问题通常是太宽泛

相关问题