我正在做一個簡單的選民,要麼「喜歡」投票或「不喜歡」投票。然後,我計算喜歡和不喜歡的總數並輸出總數。我想出瞭如何使用Jquery Ajax進行投票,但是我投票後沒有更新投票數。我想用Jquery Ajax更新$numlike
和$numdislike
變量。如何用Jquery Ajax更新PHP變量?
這裏是PHP腳本有關的輸出:
$like = mysql_query("SELECT * FROM voter WHERE likes = 1 ");
$numlike = 0;
while($row = mysql_fetch_assoc($like)){
$numlike++;
}
$dislike = mysql_query("SELECT * FROM voter WHERE likes = 0 ");
$numdislike = 0;
while($row = mysql_fetch_assoc($dislike)){
$numdislike++;
}
echo "$numlike like";
echo "<br>";
echo "$numdislike dislike";
UPDATE: jQuery的阿賈克斯上載投票
<script>
$(document).ready(function(){
$("#voter").submit(function() {
var like = $('#like').attr('value');
var dislike = $('#dislike').attr('value');
$.ajax({
type: "POST",
url: "vote.php",
data: "like=" + like +"& dislike="+ dislike,
success: submitFinished
});
function submitFinished(response) {
response = $.trim(response);
if (response == "success") {
jAlert("Thanks for voting!", "Thank you!");
}
return false;
});
});
</script>
<form id="voter" method="post">
<input type='image' name='like' id='like' value='like' src='like.png'/>
<input type='image' name='dislike' id='dislike' value='dislike' src='dislike.png'/>
</form>
vote.php:
if ($_POST['like'])
{
$likeqry = "INSERT INTO test VALUES('','1')";
mysql_query($likeqry) or die(mysql_error());
echo "success";
}
if ($_POST['dislike'])
{
$dislikeqry = "INSERT INTO test VALUES('','0')";
mysql_query($dislikeqry) or die(mysql_error());
echo "success";
}
請告訴我,這個代碼是一個笑話。您正在使用**最無效的**方式對行進行計數。在結果集上使用'mysql_num_rows()'效率不高,但是迭代遍歷每行的代碼更糟糕。無論如何,使用'SELECT COUNT(*)FROM',然後使用'mysql_result($ resultset,0,0)'得到行數。 – ThiefMaster
^SELECT COUNT(*)FROM voter WHERE like = 0 會好很多 – endy
select like,count(*)from voter group by like would even better:one query to get both likes and dislikes –