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