-1

私はそれを愛するボタンを作成しようとしています。ボタンはここwww.dreamsynk.comです。

さまざまな場所からコードを取得して貼り付けましたが、間違っていることがあります。PHPまたはajaxがわからず、jqueryの知識が最小限であるため、何がわからないのかわかりません。

データベースと、「value」というフィールドを持つ「loveit」というテーブルがあります。

これまでの私のコードは次のとおりです。

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>❤&lt;/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" 
}   
?>

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

?>

そして明らかに私のスタイルシート。

私はここで何を間違えましたか?

ボタンは今のようにワンクリックに制限する必要があり、もう一度クリックすると私を愛しません。

4

2 に答える 2

1

これはすべての質問に完全に答えるわけではありませんが、間違っていることのいくつかを示します。

他のサイト/チュートリアルから「love」スクリプトをコピーして貼り付けたと仮定します。あなたのサイトをfirefugで開いてコンソールを見ると、次のようになります。
ここに画像の説明を入力してください

<script>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からWestern8859-1に変更すると、次のようになります。
ここに画像の説明を入力してください

于 2012-09-23T14:14:53.717 に答える
0

ええと、あなたのページでスクリプトを試してみましたが、正しく動作していないようです。「カウントアップ」のみで「カウントダウン」はなく、制御 IP もありません。ページ数回、これも悪いです。

このチュートリアルを見ることができます。次のことに役立ちます。

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

于 2012-10-07T07:15:25.033 に答える