2

我有一个简单的(或者我认为是这样的)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>
4

2 回答 2

1

添加:

$getUpVoteResult = mysql_query("SELECT up_mod FROM table WHERE img_id = $id") or die ("Invalid query: " . mysql_error());

while循环之前。

您也不需要 while 循环,因为只有一行。

于 2013-05-06T21:32:50.873 回答
0

更新后,请进行单独的SELECT.

于 2013-05-06T21:32:45.863 回答