【问题标题】:Love button not working爱心按钮不起作用
【发布时间】:2012-09-23 14:05:51
【问题描述】:

我正在尝试创建一个喜欢它的按钮,该按钮位于 www.dreamsynk.com。

我已经从不同的地方获取代码并将它们粘贴在一起,但是有些事情是错误的,我只是不确定是什么,因为我不知道 PHP 或 ajax,而且我的 jquery 知识很少。

我有一个数据库和一个名为“loveit”的表,其中包含一个名为“value”的字段。

到目前为止,这是我的代码:

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" 
}   
?>

值.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); 
}

?>

然后显然是我的样式表。

我在这里做错了什么?

该按钮需要像现在一样仅限单击一次,如果他们再次单击它,我就会不喜欢它。

【问题讨论】:

  • 什么不起作用? “有问题”不能很好地描述您的问题。
  • 您绝对应该使用 mysqli 或 PDO,因为不推荐使用 mysql 扩展。您是否收到错误消息?您是否尝试过使用 Firebug 来查看您的 AJAX 请求是否实际触发?
  • 我没有,我似乎永远无法让 firebug 工作。
  • 如果您测试该按钮,它仅适用于其中添加“1”但刷新浏览器并返回“0”的 jquery 部分。单击该按钮两次它给出一个“错误”。这意味着 ajax 和 php 文件不起作用?我不知道我做错了什么?
  • Love It Button not working 的可能重复项

标签: php jquery html button


【解决方案1】:

这可能无法完全回答您的所有问题,但会指出一些问题。

我假设您从其他网站/教程中复制粘贴了“爱”脚本。 当我在 firefug 中打开您的网站并查看控制台时,我得到了以下信息:

我将 &lt;script&gt; 位从我的 firefox 源视图复制并粘贴到 notepad++ 中并得到了这个:

<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 更改为 Western 8859-1 让我知道:

【讨论】:

  • 当你第二次点击它时,它确实给了我Error.。这似乎表明错误在这一行:&lt;?php mysql_connect("host", "database", "pass") or die ("Error.");(检查以确保脚本可以连接到您的数据库(?))
  • (我假设"host", "database", "pass" 不是实际代码,只是占位符,但无论如何都要检查它们;))
  • 是的,它的虚拟代码。主机我复制粘贴了我的主机名,“数据库”是数据库名称,这应该是数据库用户名吗?并传递我的数据库密码。
  • 我刚刚对 script.js 进行了更改: from: success: function(result) { $("#like-it").html(result); to: 成功: function(result) { $("data-count").html(result);现在看一下,没有错误消息但刷新浏览器并且值没有保存
  • 我创建的数据库表如下所示: FIELD:value, TYPE:int, LENGTH:i left blank and it shows "11" atm, DEFAULT:none, COLLATION:blank, ATTRIBUTES:blank, NULL:未勾选,AUTO_INCREMENT:已勾选,
【解决方案2】:

呃,我刚刚试了一下你页面的脚本,但是好像不能正常工作,只有“倒计时”,没有“倒计时”,也没有控制IP,所以一个访问者可以“爱”你的页面好几次,这也很糟糕。

您可以查看本教程。它可以帮助您:

http://blog.deepscripts.com/how-to-build-a-like-my-page-script/

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-02
    相关资源
    最近更新 更多