2012-09-23 4 views
-1

J'essaie de créer un bouton d'amour, le bouton est ici www.dreamsynk.com. J'ai pris le code de différents endroits et les ai collés ensemble, mais il y a des choses qui sont fausses je ne suis pas sûr que ce que je ne sais pas PHP ou ajax et ma connaissance de jquery est minime.Le bouton d'amour ne fonctionne pas

J'ai une base de données et une table appelée "loveit" avec un champ appelé "valeur".

Voici mon code à ce jour:

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" 
} 
?> 

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

?> 

Et puis évidemment ma feuille de style.

Qu'ai-je fait de mal ici?

Le bouton doit être limité à un clic comme il est maintenant et si ils le cliquent à nouveau, il ne me plaît pas.

+2

Qu'est-ce qui ne fonctionne pas? "il y a des choses qui ne vont pas" n'est pas une bonne description de votre problème. – verdesmarald

+2

Vous devriez certainement utiliser mysqli ou PDO, car l'extension mysql est obsolète. Recevez-vous des messages d'erreur? Et as-tu essayé d'utiliser Firebug pour voir tes requêtes AJAX en train de tirer? –

+0

Je n'ai pas, je ne peux pas sembler jamais obtenir firebug pour travailler. – user1691337

Répondre

1

Ceci peut ne pas répondre entièrement à toutes vos questions, mais indiquera certaines des choses qui ne vont pas. Je suppose que vous avez copié-collé le script 'love' à partir d'un autre site/tutoriel. Quand j'ouvre votre site dans firefug et regarde la console, je reçois ceci:
enter image description here

copier et collé le <script> peu de moi source de Firefox dans notepad ++ et ai obtenu ceci:

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

Peut-être que lorsque vous avez copié-collé le script, vous avez également copié certains symboles cachés/mauvais avec lui.

MISE À JOUR
Modification de l'encodage de caractères UTF-8 à l'Ouest 8859-1 me fait ceci:
enter image description here

+0

Lorsque vous cliquez sur la deuxième fois, il me donne 'Erreur. Cela semble indiquer que l'erreur est sur cette ligne: '

+0

(je suppose que «host», «database», «pass» 'n'est pas le code réel mais sont juste des espaces réservés, mais vérifiez-les quand même;)) –

+0

Oui son code fictif. Hôte j'ai copié collé mon nom d'hôte, "base de données" est le nom de la base de données, devrait-il être le nom d'utilisateur db à la place? et passe évidemment mon mot de passe de base de données. – user1691337

0

Euh, je viens d'essayer le script sur votre page, mais il ne semble pas fonctionner correctement , il n'y a que "count up" et non "count down", et il n'y a pas non plus d'IP de contrôle, de sorte qu'un visiteur peut "aimer" votre page plusieurs fois et c'est aussi mauvais.

vous pouvez voir ce tutoriel. Il muy vous aider à:

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