我有一个简单的(或者我认为是这样的)PHP、MYSQL、AXAX 系统来为我的网站上的项目登记投票。我只做upVotes,所以只有一个按钮。
我的问题是,当页面加载时,会显示该项目的正确投票数,但是在第一次单击 upVote 按钮时,该值不会改变。我知道我一定错过了什么,但我不知道是什么。这可能很简单......但我就是想不通。
一切都很好地连接到数据库。这就是为什么我把所有代码都省略了。
任何帮助是极大的赞赏。
这是我拥有的javascript:
<script type="text/javascript">
function voteButton(str)
{
if (str=="")
{
document.getElementById("voteUp").innerHTML="";
return;
}
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
document.getElementById("voteUp").innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("GET","vote?id="+str,true);
xmlhttp.send();
}
</script>
这是用于查询数据库的 php 文件:
<?php
$id=$_GET["id"];
include("myDatabaseStuff.php");
include("global.php");
$result = mysql_query("UPDATE TABLE SET up_mod = up_mod + 1 WHERE img_id = $id");
if (!$result) {
die('Invalid query: ' . mysql_error());
}
while($row = mysql_fetch_array($getUpVoteResult))
{
echo $row['up_mod'];
}
?>
这是我在页面上用来显示值/按钮的 HTML:
<div class="span1" style="margin:30px 0 0 10px;">
<button onclick="voteButton('<?php echo $id;?>')" class="btn btn-large" type="button" style="margin-top:5px"><div id="voteUp"><?php echo $votes[0] ?></div><i class="icon-thumbs-up"></i></button>
</div>