Я пытаюсь сделать кнопку / unlike с jQuery и Ajax. Проблема в том, что когда мне нравится что-то, что я не могу отличить от нее, пока не обновляю страницу, и если мне что-то не понравится, я не смогу ее повторить, пока не обножу страницу.
Вот мой PHP / html:
<?php require('con.php'); session_start(); if (!empty($_POST)) { $un = $_SESSION['un']; $op = $_POST['op']; $pid = $_POST['pid']; if ($op == "like") { mysqli_query($con, "INSERT INTO likes (pid, uid, date_liked, username) VALUES ('$pid', '".$_SESSION['id']."', now(), '".$_SESSION['un']."')") or die(mysqli_error($con)); echo 1; exit; } elseif ($op == "unlike") { mysqli_query($con, "DELETE FROM likes WHERE pid = '$pid' AND username = '$un'"); echo 1; exit(); } } ?> <!DOCTYPE html> <html> <head> <title>Test 2 Test</title> <script src="//code.jquery.com/jquery-latest.js"></script> </head> <body> <? $sql = mysqli_query($con, "SELECT * FROM posts") or die(mysqli_error($con)); //get all the posts from the posts table while ($r = mysqli_fetch_assoc($sql)) { $b = $r['body']; $u = $r['uid']; $pid = $r['pid']; $s = mysqli_query($con,"SELECT username, pid FROM likes WHERE pid = '$pid' ") or die(mysqli_error($con)); //get all the likes that correspond with the post id from the likes table $n = mysqli_num_rows($s); //the number of likes $r = mysqli_fetch_assoc($s); $user = $r['username']; if ($user !== $_SESSION['un']) { //if the user hasn't liked the post yet echo "<div>$b</div>"; echo "<input type = 'button' value = '$n' id = 'like_$pid' class='$pid'>"; //the like button echo "<br><br>"; ?> <!-- jQuery Script here --> <? } else { //the user has liked the post echo "<div>$b</div>"; echo "<input type = 'button' value = '$n' id = 'unlike_$pid' class='$pid'>"; //the unlike button echo "<br><br>"; ?> <!-- More jQuery --> <? } } ?>
Мой jQuery:
$(document).ready(function() { $('#like_' + <? echo $pid; ?>).click(function() { var val = parseInt($(this).val(), 10); var pid = $("." + <? echo $pid; ?>).val(); //create a variable with the num of likes $.post("test2test.php", {op: "like", pid: pid}, function(data) { val = val + 1; $('#like_' + <? echo $pid; ?>).val(val); $("#like_" + <? echo $pid; ?>).attr("id", "unlike_<? echo $pid; ?>"); }); }); $('#unlike_' + <? echo $pid; ?>).click(function() { var val = parseInt($(this).val(), 10); var pid = $("." + <? echo $pid; ?>).val(); $.post("test2test.php", {op: "unlike", pid: pid}, function(data) { val = val - 1; $("#unlike_" + <? echo $pid; ?>).val(val); $('#unlike_' + <? echo $pid; ?>).attr("id", "like_<? echo $pid; ?>"); }); }); });
Я помещаю этот код везде, где он сказал <!--jQuery Script here-->
или <!--More jQuery-->
Все это на одной странице. Я не получаю PHP ошибок javascript, поэтому я не знаю, что случилось.
Пожалуйста, помогите мне.
PS: Я новичок в jQuery, поэтому, пожалуйста, не делайте ваш ответ слишком сложным.
Спасибо.