2015-03-30 27 views
1

我正在實現類似於「Like」按鈕計數器的Facebook,因此每次用戶單擊該按鈕時,除了從數據庫檢索它並更新它之外,還有一個DIV標記(請參閱下面的代碼邏輯) 。但它不起作用。請看下面的所有代碼: -像按鈕增量計數器不工作。 PHP,AJAX,MySQL,javascript

的javascript:

function likeAJAX(strName) 
{ 
    If(strName == "") 
    { 
     document.getElementById('likeCount').innerHTML=""; 
     return; 
    } 
    else 
    if(window.XMLHttpRequest) 
    { 
     xmlHTTP = new XMLHttpRequest(); 
    } 
    else 
    { 
     xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP'); 
    } 
    xmlHTTP.onreadystatechange = function() 
    { 
     if(xmlHTTP.readystate == 4 && xmlHTTP.status == 200) 
     { 
      document.getElementById('likeCount').innerHTML = xmlHTTP.responseText; 
     } 
    } 
    xmlHTTP.open("GET","getLikes.php?n=" + strName,true); 
    xmlHTTP.send(); 
} 

HTML/PHP前端:

<img src="./images/like.jpg" style="cursor:hand;" onclick="likeAJAX(<?php echo $_GET['val']; ?>)"><?php echo $likeVal; ?> people like this</span> 

PHP/MySQL的:

<?php 
$q = $_GET['n']; 
     $temp; 
     $con = mysql_connect('localhost','xxxx','xxxx'); 
     mysql_select_db("xxxx"); 
     $SQLQuery = "SELECT * FROM likes where name= '" . $q . "'"; 
     $res = mysql_query($SQLQuery); 
     while($data = mysql_fetch_array($res)) 
     { 
      $temp = $data['likes']; 
     } 
     mysql_free_result($res); 
     mysql_close($con); 
     if($temp == "") 
     { 
      $temp = "0"; 
     } 
     $intCount = int($temp); 
     $intCount++; 
     $con = mysql_connect('localhost','xxxx','xxxx'); 
     mysql_select_db("xxxx"); 
     $SQLQuery = "UPDATE likes set likes = '" . $intCount . "' WHERE busname = '". $q . "';"; 
     $res = mysql_query($SQLQuery); 
     mysql_free_result($res); 
     mysql_close($con); 
     echo $intCount; 
?> 

道歉任何格式問題。 我哪裏錯了?我看到它的方式,似乎就像點擊Like圖像一樣,javascript函數似乎甚至沒有被調用?

問候,

Ochen

+0

我可以看到你的'javascript'一些問題。首先,'If'不會工作,必須是'if',而不是大寫字母。接下來,爲了說明起見,第一個'else'語句應該包含'{}':if(...){} else {if(...){else {}}'。 – 2015-03-30 19:15:49

回答

0

試試這個修正您的JS:

function likeAJAX(strName) { 
     if (strName == "") { 
      document.getElementById('likeCount').innerHTML=""; 
      return; 
     } else { 
      if(window.XMLHttpRequest) { 
       xmlHTTP = new XMLHttpRequest(); 
      } else { 
       xmlHTTP = new ActiveXObject('Microsoft.XMLHTTP'); 
      } 
      xmlHTTP.onreadystatechange = function() { 
       if (xmlHTTP.readystate == 4 && xmlHTTP.status == 200) { 
        document.getElementById('likeCount').innerHTML = xmlHTTP.responseText; 
       } 
      } 
      xmlHTTP.open("GET","getLikes.php?n=" + strName,true); 
      xmlHTTP.send(); 
     } 
    } 
+0

仍然不能工作!:( – 2015-03-31 14:45:23

+0

我已經把一個提醒(strName);在javascrpt函數中,但它不提醒!!! – 2015-03-31 14:54:31

+0

注意你的電話:onclick =「likeAJAX(<?php echo $ _GET ['val' ];?>)「>嘗試改爲:onclick =」likeAJAX('<?php echo $ _GET ['val'];?>')「並且讓我知道 – gaetanoM 2015-03-31 15:29:38