2012-09-23 189 views
-1

我想創建一個愛按鈕按鈕在這裏www.dreamsynk.com。愛按鈕無法正常工作

我已將不同地方的代碼粘貼在一起,但有些事情是錯誤的,我只是不確定是什麼,因爲我不知道PHP或AJAX,我的jQuery是知識是最小的。

我有一個數據庫和一個名爲「loveit」與所謂的「值」字段的表。

這裏是我到目前爲止的代碼:

HTML:

<div class="love-it"> 
    <script type="text/javascript"> 
    jQuery(function() { 
     jQuery('#like-it').click(function() { 
     jQuery('#like-it').load('wp-content/themes/dreamsynk/value.php'); 
     }); 
    });​ 
    </script> 
    <a href="#" class="btn btn-counter" id="like-it" data-count="0"><span>❤</span></a> 
</div> 

的script.js

jQuery(document).ready(function() { 

(function($) { 
$('.btn-counter').on('click', function(event, count) { 
event.preventDefault(); 

var $this = $(this), 
    count = $this.attr('data-count'), 
    active = $this.hasClass('active'), 
    multiple = $this.hasClass('multiple-count'); 

// First method, allows to add custom function 
// Use when you want to do an ajax request 
if (multiple) { 
    $this.attr('data-count', ++count); 
    $("#like-it").unbind().bind("click", function() { 
     $.ajax({ 
     type: 'POST', 
     url: 'wp-content/themes/dreamsynk/loveit.php', 
     data: 'action=add', 
     success: function(result) { 
     $("#like-it").html(result); 
     } 
     }); 
     return false; 
    }); 
} else { 
    $this.attr('data-count', active ? --count : ++count).toggleClass('active'); 
    $("#like-it").unbind().bind("click", function() { 
     $.ajax({ 
     type: 'POST', 
     url: 'wp-content/themes/dreamsynk/loveit.php', 
     data: 'action=add', 
     success: function(result) { 
     $("#like-it").html(result); 
     } 
     }); 
     return false; 
    }); 
} 
}) 
})(jQuery); 

loveit.php

<?php mysql_connect("host", "database", "pass") or die ("Error."); 
mysql_select_db("database") or die ("error"); 

$increase = "UPDATE loveit SET value=value+1 WHERE id=1;"; 
$active_rate = mysql_query("SELECT * FROM loveit WHERE id=1;"); 
$val = 0; 

if($rt = mysql_fetch_assoc($active_rate)) { 
$val = $rt['value']; 
} 

if($_POST['action'] == 'add') { 
mysql_query($increase); 
print $val++; 
} 

$rat = mysql_query("SELECT * FROM loveit WHERE id=1;"); 

if($res = mysql_fetch_assoc($rat)) { 
print '<a id="likeit'.($res['value']-1).' '; // id="likeit" 
} 
?> 

value.php

<?php mysql_connect("host", "database", "pass") or die ("Error."); 
mysql_select_db("database") or die ("error"); 

$rat = mysql_query("SELECT * FROM loveit WHERE id=1;"); 

if($res = mysql_fetch_assoc($rat)) { 
    print ($res['value']-1); 
} 

?> 

然後顯然,我的樣式表。

我做了什麼錯在這裏?

按鈕需要被限制在一個點擊喜歡它是現在,如果他們再次單擊它unloves我。

+2

什麼不行? 「有些事情是錯誤的」並不能很好地描述你的問題。 – verdesmarald

+2

您一定應該使用mysqli或PDO,因爲不推薦使用mysql擴展。你是否收到錯誤消息?你有沒有試過使用Firebug來查看你的AJAX請求實際上是在發射? –

+0

我沒有,我似乎無法得到firebug工作。 – user1691337

回答

1

這可能無法完全回答你所有的問題,但會指明一些是錯誤的事情。

我想從其他網站/教程你複製粘貼的「愛」的腳本。 當我在firefug打開你的網站,並期待在控制檯上,我得到這個:
enter image description here

我複製和我的Firefox源視圖到記事本+ +粘貼<script>位和得到這個:

<script type="text/javascript"> 
jQuery(function() { 
    jQuery('#like-it').click(function() { 
     jQuery('#like-it').load('wp-content/themes/dreamsynk/value.php'); 
    }); 
});?   // <---------- that question mark should not be there! 
</script> 

也許當你複製粘貼腳本時,你也會複製一些隱藏/不好的符號。從UTF-8到西8859

UPDATE
更改字符編碼得到我:
enter image description here

+0

當你第二次點擊它時,它確實給了我'Error.'。這似乎表明錯誤在這一行上:'<?php mysql_connect(「host」,「database」,「pass」)或die(「Error。」);' (檢查以確保腳本可以連接到你的數據庫(?)) –

+0

(我認爲''主機「,」數據庫「,」通過「不是實際的代碼,但只是佔位符,但無論如何檢查;)) –

+0

是它的虛擬代碼。主機我複製粘貼我的主機名稱,「數據庫」是數據庫名稱,應該這是數據庫的用戶名呢?並通過我的數據庫密碼。 – user1691337