Функция Like
Здравствуйте. Хочу на сайте внедрить функцию ( мне нравиться ) используя js.
Что бы при нажатие на ссылку (мне нравиться ) менялась сама ссылка (мне нравиться ) на, допустим ( мне понравилось ) , увеличивалось значение count(like) которое прежде было взято из БД на +1 и шла запись в БД . При повторном нажатие шла бы обратная операция. |
Цитата:
|
:)
|
Здравствуйте. пытаюсь сделать функцию 'мне нравится" Вот что получается
<?php $like=$rowlents_p['like']; echo $like; ?> <script> var a=<?php echo $like; ?>; function order() { ord = a+1; noord = "<img src=images/like.png>"; document.getElementById("text").innerHTML = ord; document.getElementById("like2").innerHTML = noord; document.getElementById("like").style.display = 'none'; document.getElementById("like2").style.display = "block" ; } function noorder() { ord = a; noord = "<img src=images/like2.png>"; document.getElementById("text").innerHTML = ord; document.getElementById("like").innerHTML = noord; document.getElementById("like").style.display = "block" ; document.getElementById("like2").style.display = 'none'; } </script> <table><tr> <td><div id="like2" onclick="noorder();"></div><div id="like" onclick="order();"><img src=images/like2.png></div></td> <td><div id="text" ><?php echo $like; ?></text></div></td> </tr></table> $rowlents_p['like'] Это количество всех лайков взятых из базы. В принципе скрипт работает но... Допустим у меня есть массив новостей . Вывожу их $lents_p = mysql_query("SELECT * FROM `posts` ORDER BY id DESC ") or die(mysql_error()); while($rowlents_p = mysql_fetch_array($lents_p)) include(like.php); { echo $rowlents_p[news]; } Так скрипт не работает. как я понимаю это потому что функции в js повторяются. Вопрос. Как мне сделать так что бы кнопка была в каждой новости которою выведет массив Заранее спасибо. |
$html = ""; while($rowlents_p = mysql_fetch_array($lents_p)) { $html .= $rowlents_p[news] . $like; } echo $html; |
это не чего не даёт .. $like это?
|
js не срабатывает. он выходит с каждым массивом, но работает только с первым массивом
$html = ""; $lents_p = mysql_query("SELECT * FROM `posts` ORDER BY id DESC ") or die(mysql_error()); while($rowlents_p = mysql_fetch_array($lents_p)) { $html .= $rowlents_p['like'] . $like ."<br>" ; include ('7.php'); } echo $html; |
зачем в цикле делать include ('7.php'); ?
$like = '<div class="like"><img src="http://javascript.ru/forum/images/smilies/smile.gif"></div>'; <body> <div class="like"> <img src="http://javascript.ru/forum/images/smilies/smile.gif"> </div> <div class="like"> <img src="http://javascript.ru/forum/images/smilies/smile.gif"> </div> <div class="like"> <img src="http://javascript.ru/forum/images/smilies/smile.gif"> </div> <script> var likes = document.querySelectorAll("div.like"); var len = likes.length; var cllike = function () { var limg = this.querySelector("img"); limg.src = limg.src == "http://javascript.ru/forum/images/smilies/smile.gif" ? "http://javascript.ru/forum/images/smilies/dance3.gif" : "http://javascript.ru/forum/images/smilies/smile.gif"; } while (len--) likes[len].onclick = cllike; </script> </body> |
спасибо за ответ .. но кажется это не подходит так как этот скрипт просто методом селект меняет картинку но не может считывать информацию с массива пхп . ( берёт только первый массив ) ... Либо я туплю ..
<?php $lents_p = mysql_query("SELECT * FROM `posts` ORDER BY id DESC ") or die(mysql_error()); while($rowlents_p = mysql_fetch_array($lents_p)) { $like=$rowlents_p['like']; echo "<div class=like> <img src=images/like2.png> </div> " ; } ?> <script> var likes = document.querySelectorAll("div.like"); var len = likes.length; var a=<?php echo $like; ?>; var cllike = function () { var limg = this.querySelector("img"); limg.src = limg.src == "http://javascript.ru/forum/images/smilies/smile.gif" ? "http://javascript.ru/forum/images/smilies/dance3.gif" : "http://javascript.ru/forum/images/smilies/smile.gif"; alert(a); } while (len--) likes[len].onclick = cllike; </script> </body> при выводе alert(a); выходит самый первый массив . |
есть у кого нибудь идеи ?
|
Часовой пояс GMT +3, время: 18:11. |