Ajax dans jQuery fonctionne comme ceci :
var myData=1;
$.ajax({
type:'POST',//type of ajax
url:'mypage.php',//where the request is going
data:myData,//the variable you want to send
beforeSend:function(xhr){//as a standard, I add this to validate stuff
if(someThingWrong===true)xhr.abort//aborts xhttpRequest
},
success:function(result){
//result is your result from the xhttpRequest.
}
});
Cela ne rafraîchira pas votre page mais enverra un 'POST' à l'url spécifiée. Sur votre page spécifiée, vous voulez faire ce que vous voulez faire et dire renvoyer un résultat. Dans mon exemple, je vais faire quelque chose de simple :
if($_POST['myData']===1)return True;
C'est la base d'une requête AJAX utilisant jQuery.
ÉDITER!
lancer un script AJAX :Je ne fais que supposer que je ne connais pas vos éléments dans votre html ni vos scripts quoi que ce soit ! Il va donc falloir faire des ajustements !
$('button.dislike').click(function(){
$.ajax({
type:'POST',
url:'disliked.php',
data:{dislike:$(this).attr('id')},
success:function(result){
$(this).prev('span').append(result);
}
});
});
PHP :n'utilisez pas mysql, il a maintenant été déprécié et est considéré comme une mauvaise pratique, je ne sais pas non plus pourquoi j'utilise sprintf sur la requête ? :S
$DBH=new mysqli('location','username','password','database');
$get=$DBH->prepare("SELECT dislike FROM random WHERE ids=?");
$get->bind_param('i',$_POST['dislike']);
$get->execute();
$get->bind_result($count);
$get->close();
$update=$DBH->prepare('UPDATE random SET dislike=? WHERE ids=?');
$update->bind_param('ii',++$count,$_POST['dislike']);//if you get an error here, reverse the operator to $count++.
$update->execute();
$update->close();
return String $count++;
Cela ne fonctionnera que s'il y a dans votre HTML une série de boutons avec des identifiants correspondant à ceux de votre base de données. Alors
$get=$DBH->prepare('SELECT ids FROM random');
$get->execute();
$get->bind_result($ids);
while($get->fetch()){
echo"<button class='dislike' id='".$ids."'>Dislike this?</button>";
}
J'espère que vous avez une idée générale de la façon dont je gère votre système de bouton d'aversion XD lol