2011-02-07 64 views
1

我基本上在一個用戶反覆點擊一個按鈕的網站上工作,每次點擊時都會增加他的分數。我不希望頁面在每次點擊之間刷新,所以我使用的是AJAX。是jQuery/AJAX post() - 幾個問題

我在目前存在的問題如下:

  1. 當我嘗試我的javascript var設置爲=<? echo $result['count']; ?>,它似乎並沒有工作。

  2. 我不明白如何正確使用PDO到UPDATE一個MySQL查詢中的計算表,如$update = $dbh->execute("UPDATE count SET count='$count'+1 WHERE username='$username'");。這是計算的正確語法,並且這是在PDO中執行此操作的正確方法嗎?

這裏是我使用的點擊系統我的測試頁面的代碼:

<html> 
<?php 

$hostname = 'localhost'; 
$username2 = 'refrigerator'; 
$password = 'xxx'; 

$dbh = new PDO("mysql:host=$hostname;dbname=refrigerator", $username2, $password); 
$username = $_COOKIE["user"]; 

$rows = $dbh->prepare("SELECT count FROM count WHERE username = '$username'"); 
      $rows->execute(); 
      $result = $rows->fetchALL(); 
      $result['count'] = $count; 

if(isset($_POST['action'])){  

    if ($_POST['action'] == 'increase'){ 

     $update = $dbh->execute("UPDATE count SET count='$count'+1 WHERE username='$username'");    
    } 
} 
?> 
<body> 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.3.min.js"></script> 
<script type="text/javascript"> 
$(document).ready(function(){ 

    var count = <? echo $result['count']; ?>; 

     $("#update").click(function() { 
      $.ajax({ 
      type: "POST", 
      url: "button.php", 
      data: {"action":"increase"}, 
      success: function(update) { 

       count++; 
       $("#counter").html(+count); 
      } 
     }); 
    }); 
}); 
</script> 
<button id="update" type="button">Button</button> 
<div id="counter"><? echo $result['count']; ?></div> 

</body> 
</html> 

非常感謝,任何幫助將不勝感激。即使你能指出我正確的方向,這將幫助我回答我的問題,那將是非常棒的。

謝謝

+0

你確定你有正確的標籤設置?你可能無法使用'`並且可能需要使用`` – Dutchie432 2011-02-07 21:09:20

回答

0

你應該有:

$count = $result['count']; 

相反的:

$result['count'] = $count; 

等號(=)左邊的變量是什麼接收分配的任何值在=號的右側。

在update語句中,你可以,而不是用計數變量,可以這樣做:

$update = $dbh->execute("UPDATE count SET count=count+1 WHERE username='$username'");