2012-09-23 132 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