2011-02-07 101 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'");