2011-02-07 10 views
1

私は基本的に、ユーザーがボタンを繰り返しクリックしてクリックするたびにスコアを上げるサイトに取り組んでいます。クリックごとにページを更新したくないので、AJAXを使用しています。次のように私がいるjQuery/AJAX post() - いくつかの問題

の問題は、現在、以下のとおりです。私は=<? echo $result['count']; ?>に私のjavascriptのvarを設定しようとすると

  1. 、動作するようには思えません。

  2. 私は正確にUPDATE$update = $dbh->execute("UPDATE count SET count='$count'+1 WHERE username='$username'");のようなクエリの計算とMySQLテーブルを使用する方法を理解していません。これは計算の正しい構文ですか、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

+0

@ Dutchie432 返信ありがとう 私は短いタグを使う必要があると私は確信しています。変数$ resultが定義されていないか、何かがないというエラーです。 – Taimur

+1

'$ result ['count'] = $ count;'の行の後に 'die($ result ['count'])'を置くと、期待される結果が見えますか? – Dutchie432

答えて

0

$count = $result['count']; 

の代わりに:

$result['count'] = $count; 

=記号の左側の変数の値が何であれから割り当てを受けているものです=記号の右側に表示されます。あなたは、あなたの代わりにカウント変数を使用しての、あなたのUPDATE文で

を行うことができますことができます:あなたは上の正しいタグ設定を持っていることを確認

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