【发布时间】: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 的可能重复项