Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Функция Like (https://javascript.ru/forum/misc/46862-funkciya-like.html)

Samsam 27.04.2014 15:11

Функция Like
 
Здравствуйте. Хочу на сайте внедрить функцию ( мне нравиться ) используя js.

Что бы при нажатие на ссылку (мне нравиться ) менялась сама ссылка (мне нравиться ) на, допустим ( мне понравилось ) , увеличивалось значение count(like) которое прежде было взято из БД на +1 и шла запись в БД .

При повторном нажатие шла бы обратная операция.

nerv_ 27.04.2014 15:15

Цитата:

Сообщение от Samsam
Хочу на сайте внедрить

Даю добро :)

Samsam 27.04.2014 16:16

:)

Samsam 28.04.2014 01:51

Здравствуйте. пытаюсь сделать функцию 'мне нравится" Вот что получается

<?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 повторяются.

Вопрос. Как мне сделать так что бы кнопка была в каждой новости которою выведет массив

Заранее спасибо.

Vlasenko Fedor 28.04.2014 02:11

$html = "";
while($rowlents_p = mysql_fetch_array($lents_p))
{
  $html .= $rowlents_p[news] . $like;
}
echo $html;

Samsam 28.04.2014 02:45

это не чего не даёт .. $like это?

Samsam 28.04.2014 02:47

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;

Vlasenko Fedor 28.04.2014 03:48

зачем в цикле делать 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>

Samsam 28.04.2014 11:44

спасибо за ответ .. но кажется это не подходит так как этот скрипт просто методом селект меняет картинку но не может считывать информацию с массива пхп . ( берёт только первый массив ) ... Либо я туплю ..

<?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); выходит самый первый массив .

Samsam 28.04.2014 16:54

есть у кого нибудь идеи ?


Часовой пояс GMT +3, время: 18:11.