私のウェブサイトのアイテムへの投票を登録するために、単純な(またはそう思った)PHP、MYSQL、AXAXシステムをセットアップしました。私は upVotes しかやっていないので、ボタンは 1 つしかありません。
私の問題は、ページが読み込まれると、アイテムの正しい投票数が表示されますが、upVote ボタンを最初にクリックしたときに値が変更されないことです。何かが欠けているに違いないことはわかっていますが、何が足りないのかわかりません。それはおそらく簡単です...しかし、私はそれを理解することはできません.
すべてが正常にDBに接続されます。そのため、すべてのコードを省略しました。
どんな助けでも大歓迎です。
これは私が持っている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>