2

我已按照此处的说明进行操作,并执行了以下操作:

  1. 我已将 jquery.upvote.js、jquery.upvote.css 和 images 文件夹上传到 wordpress 主题文件夹,并像往常一样注册这些文件。

  2. 我已将 jquery 版本设置为 2.0.2

  3. 将基本 div 放入 html 中:

HTML

 <div id="topic" class="upvote">
    <a class="upvote"></a>
    <span class="count">0</span>
    <a class="downvote"></a>
    <a class="star"></a>
 </div>
  1. 并尝试启动插件:

JS

(function($){
    $(document).ready(function(){

$('#topic').upvote();
var callback = function(data) {
    $.ajax({
        url: '/vote', //I don't have this url, idk if this needs to be changed to something else
        type: 'post',
        data: { up: data.upvoted, down: data.downvoted, star: data.starred }
    });
};
    });
})(jQuery);

它不起作用......我错过了什么?

4

3 回答 3

3

相当古老的帖子,但这是您可以将其设置为使用的方式PHP。我不确定 wordpress 但这应该给你一个很好的起点来根据你的需要进行定制。

  • 准备好 HTML 位 ( home.html)
<html><head><title>Voting Machine</title>
<link rel="stylesheet" type="text/css" href="vote/upvote.css">
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script type="text/javascript" src="event.js"></script>
<script type="text/javascript" src="vote/upvote.js"></script>
</head><body>
<div id="topic-123" class="upvote">
<a class="upvote" title="This idea is helpful"></a>
<span class="count">5</span>
<a class="downvote"></a>
<a class="star starred"></a>
</div>
<div id="message"></div>
</body>
</html>

我在下面解释event.js

  • 设置PHP文件执行服务器端(insert.php
<?php
 $con = mysql_connect("localhost","root","password");
 if (!$con) {
 die('Could not connect: ' . mysql_error());
 }
 mysql_select_db("ccy", $con);
 $code=$_POST['id'];
 $up=$_POST['up'];
 $down=$_POST['down'];
 $star=$_POST['star'];
 $query=mysql_query("INSERT INTO mytable(code,up,down,star) VALUES('$code','$up','$down','$star')");
if($query){
echo "Data for $name inserted successfully!";
}
else{ echo "An error occurred!" . mysql_error(); }
?>
  • 最后但并非最不重要的一点是,您需要从 DIV 中获取值并将其传递给 MySQL(或任何其他数据库)。这是使用Ajax post. 所以在我的event.js我有以下代码
$(document).ready(function(){
var callback = function(data) {
    $.ajax({
        url: 'insert.php',
        type: 'post',
        data: { id: data.id, up: data.upvoted, down: data.downvoted, star: data.starred },
         success: function(data) {
            $("#message").html(data);
$("#message").hide();
$("#message").fadeIn(1500); 
        }
    });
};
$('#topic-123').upvote({id: 123, callback: callback});


});

不要忘记MySQL的表结构是这样的

CREATE TABLE `mytable` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `code` bigint(20) DEFAULT NULL,
  `up` varchar(45) DEFAULT NULL,
  `down` varchar(45) DEFAULT NULL,
  `star` varchar(45) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=129 DEFAULT CHARSET=utf8;

玩得开心!!!

于 2014-01-31T15:39:02.020 回答
0

jQuery Upvote 生成一个投票小部件,就像在 Stack Exchange 网站上使用的一样。

通过使用正确的标记,它将呈现一个<div>看起来像 Stack Overflow 上的投票小部件。当您单击投票按钮时,它可以选择触发 AJAX 调用。它只能触发它们,不能实现它们。投票系统的实现必须在服务器端完成,jQuery 插件无法做到这一点。

有人可以创建一个 WordPress 插件来实现投票系统的服务器端部分,并使用这个 jQuery 插件作为显示投票和触发赞成票、反对票、加注星标的前端。

于 2013-12-26T09:20:25.303 回答
0

这可能不是您的情况,但我将文件从 Github 直接下载到我的本地计算机中。一些 HTML 与 .js 和 .css 一起出现。从 jquery 插件站点下载有帮助 - 也许这也是你的问题。你遇到了什么错误?

于 2015-08-15T18:11:40.887 回答