Intereting Posts
Как заказать результаты с помощью findBy () в Доктрине Подготовленный оператор `WHERE .. IN (..)` запрос и сортировка – с MySQL Push-уведомление | обязательна ли websocket? Как я могу загрузить файл, используя функцию jQuery $ .ajax с json и php Перенос приложения php для обработки UTF-8 Imagick (Imagemagick on PHP): сначала загрузите файл без сохранения на диск? Ошибка 1148 MySQL Использованная команда не допускается с этой версией MySQL RegEx обертывает каждое слово в теге span как проверить, зарегистрирован ли пользователь на его сеансе в маршруте, а затем вызвать метод контроллера в laravel? Обновление PHP 5.6 и специальные символы Лучшая практика, переопределяющая __construct () по сравнению с предоставлением метода init () Я хочу добавить строковые данные до первого символа и после последнего символа Внедрение PDF-файла на веб-страницу без использования встроенного средства просмотра PDF Как вызвать URL-адрес JSON в php, который включает пробелы в запросе Использование preg_match в многомерном массиве для возврата массивов ключевых значений

jQuery и AJAX на клике работают только один раз

Я пытаюсь сделать кнопку / 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, поэтому, пожалуйста, не делайте ваш ответ слишком сложным.

Спасибо.

Solutions Collecting From Web of "jQuery и AJAX на клике работают только один раз"