2013-10-23 28 views
2

我已經按照從here說明,我已經做了以下內容:不能得到的jQuery給予好評的工作(jQuery插件)

  1. 我上傳jquery.upvote.js,jQuery的.upvote.css和images文件夾到wordpress主題文件夾,並像往常一樣註冊這些文件。

  2. 我已經設置了jQuery版本2.0.2

  3. 在HTML中把基本的div:

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

,它不工作...我缺少什麼?

+0

你是對的。 'url'應該指向接收ajax post數據並處理它的php/script。 – Latheesan

+0

在wordpress中會有什麼? (注意我對Ajax和php一無所知) – weaponx

回答

0

jQuery Upvote生成一個像Stack Exchange網站上使用的投票小部件。

通過使用正確的標記,它會使<div>看起來像Stack Overflow上的投票窗口小部件。可選的,當你點擊投票按鈕時,它可以觸發AJAX調用。它們只能觸發他們,它不能實現它們。實現投票系統必須在服務器端完成,一個jQuery插件不能做到這一點。

有人可以創建一個WordPress插件來實現投票系統的服務器端部分,並使用這個jQuery插件作爲顯示投票和觸發upvotes,downvotes,主演的前端。

2

相當和舊的帖子,但這是你如何設置這與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> 

我在下面

  • 將PHP文件來執行服務器端解釋有關event.jsinsert.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; 

玩得開心!

+0

什麼是event.js? –

0

這可能不是你的情況,但我從Github直接下載文件到我的本地機器。一些HTML隨着.js和.css一起爬過。從jquery插件網站下載幫助 - 也許這也是你的問題。你遇到了什麼錯誤?