2012-04-25 8 views
0

ボタンのクリック数をカウントしています。 php everythinが働いています。 ajaxを追加すると、ボタンをクリックするとページがクラッシュします。私は何を間違えたのですか?私はhtml、クラス、およびajaxコードを挿入しました。ajaxを使用したボタンのクリック数をカウントする

<script type="text/javascript"> 
$(document).ready(function(){ 
    $("#btn_like").click(function() 
    { 
     var counter; 
     counter+=1; 

     var counts={btn_like:like}; 

     $.ajax({ 
       type: "POST", 
       url: "ajax/count_likes.php", 
       data: counts 
      }).done(function(msg) { 
       alert("Data Saved: " + msg); 

      }); 
    }); 
    }); 
</script> 
</head> 
<body> 

    <form action="" method="post"> 
    <div id="like"> 
      <img id="aap" name="aap" src="images/aap.jpg" /> 
      <input type="submit" name="btn_like" id="btn_like" value="I like"/> 
      <?php if (isset($likes)) {$numLikes=$likes->fetch_assoc(); 
echo "<span>"; echo $numLikes['likes_num']; echo "</span>"; }?> 

     </div> 
    </form> 

これは、クラス

<?php 
    class User 
    { 
    private $m_sLike; 

    public function __set($p_sProperty, $p_vValue) 
    { 
     switch($p_sProperty) 
     { 
      case "Like"; 
       $this->m_sLike = $p_vValue; 
     }  
    } 

    public function __get($p_sProperty) 
    { 
     $vResult = null; 
     switch($p_sProperty) 
     { 
     case "Like"; 
      $vResult = $this->m_sLike; 
      break; 
     } 
     return $vResult; 
    } 
    public function getLikes() 
    { 
     include("Connection.php"); 
     $sSql = "select * from tbllikes"; 
     $result = $link->query($sSql); 
     return($result); 
    } 
    public function updateLikes() 
    { 
     include("Connection.php"); 
     $sql = "UPDATE tbllikes SET likes_num=likes_num+1 WHERE likes_id=1"; 
     $vResult = $link->query($sql); 
    } 
    } 
    ?> 

AJAXです - あなたは、デフォルトのボタンの動作を提出防止されていないので、それは通常のフォーム送信を行います

<?php 
    include ('../classes/User.class.php'); 

    if(isset($_POST['btn_like'])) 
     { 
      $val=new User(); 
      $val->Likes=$_POST['btn_like']; 
      $val->updateLikes(); 

      //echo $val; 
      $likes=$val->getLikes(); 
     } 
    header('Content-type: application/json'); 
    echo json_encode($likes); 
?> 
+0

「ページクラッシュ」と言いたい場合は、さらに詳しくお尋ねください。ほとんどの場合、それはShyjuが答えたもので、あなたのページはちょうどリフレッシュされます。クラッシュ(ウィンドウやブラウザ)ではありません。 – kingmaple

答えて

3

を提出。

あなたはその

$("#btn_like").click(function(e) 
{ 
    e.preventDefault();  
    //Your rest of the code 

}); 

http://api.jquery.com/event.preventDefault/

使用放火犯を行うためにpreventDefaultを使用し、他のスクリプトエラーに実行されているかどうかを確認することができます。

関連する問題