jquery-plugins - 无法让 jquery upvote 工作(jquery 插件)

标签 jquery-plugins voting vote jquery

我已按照 here 的指示进行操作 我已经完成了以下操作:

  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);

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

最佳答案

相当古老的帖子,但这就是您如何将其与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;

玩得开心!!!

关于jquery-plugins - 无法让 jquery upvote 工作(jquery 插件),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19542015/

相关文章:

javascript - 为什么将 Javascript 函数构建为 jQuery 插件?

jquery - 如何使用在运行时分配给页面元素的 qTip2 创建工具提示

php - Drupal:在外部 php 文件中插入五星级小部件

javascript - 使用 deepstream.io 进行实时投票

mysql - 点赞投票系统

jquery fancybox 背景与图像

php - 无法找出 "approve post once 10 users like it"的系统

java - 为给定场景投票选出最佳协议(protocol)

java - Spring 安全: AccessDecisionVoter

javascript - 如何将 slider 步长值设置为一些固定值?