Fóruns sobre PHP, JavaScript, HTML, MySQLi, jQuery, Banco de Dados, CSS


Moderador: web

 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

votar like ou unlike

02-08-2016 15:57

Web , tenho um duvida:


tenho uma tabela com estes dados:

'id' [1]
'comentario' [texto do comentario],
like [0],
unlike [0]

na pagina index tenho o script em Ajax para votar sem refresh , ps: tambem tenho a biblioteca jquery...:

<script type="text/javascript"> function insert_like() { $.ajax({ type: 'post', url: 'votar.php', data: { post_like:"like" }, success: function (response) { $('#total_like').html(response); } }); } function insert_like() { $.ajax({ type: 'post', url: 'votar.php', data: { post_dislike:"dislike" }, success: function (response) { $('#total_like').html(response); } }); } </script>

chamo os dados da tabela com php:

<?php require_once 'ligar_bd.php'; $buscar_dados = $ligacao->query('SELECT * FROM comentarios'); while($mostrar = mysqli_fetch_array($buscar_dados)) { ?>

botoes para poder votar no html:

<?php echo $mostrar['comentario']; ?>

<input type="image" src="like.png" onclick="insert_like();" style="width:20px" height="20px"> <?php echo $mostrar['like']?> clicando neste insere o registo no like


<input type="image" src="dislike.png" onclick="insert_dislike();" style="width:20px" height="20px"> <?php echo $mostrar['dislike']?> clicando neste insere o registo no unlike

<?php } ?>

na pagina votar.php tenho :

<?php require_once 'ligar_bd.php'; if(isset($_POST['post_like'])) { $update = $ligacao->query("update comentarios set like=like+1"); $select = $ligacao->query("SELECT * FROM comentarios"); while($mostrar = mysqli_fetch_array($select)) { $likes = $mostrar['like']; $dislikes = $mostrar['dislike']; echo "<span id='total_like'>".$likes." </span>"; echo "<span id='total_dislike'>".$dislikes." </span>"; } } if(isset($_POST['post_dislike'])) { $update = $ligacao->query("update comentarios set dislike=dislike+1"); $select = $ligacao->query("SELECT * FROM comentarios"); while($mostrar = mysqli_fetch_array($select)) { $likes = $mostrar['like']; $dislikes = $mostrar['dislike']; echo "<span id='total_like'>".$likes." </span>"; echo "<span id='total_dislike'>".$dislikes." </span>"; } } ?>

A MINHA DUVIDA É A SEGUINTE: QUANDO CLICO NO BOTÃO [LIKE] SO INSERE O REGISTO NO UNLIKE....NAO DEVERIA CADA BOTAO INSERIR O REGISTO NO SITIO CORRESPONDENTE?????
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: votar like ou unlike

02-08-2016 16:09

Suas duas funções tem o mesmo nome insert_like.

function insert_like() { $.ajax({ type: 'post', url: 'votar.php', data: { post_like:"like" },.. function insert_like() { $.ajax({ type: 'post', url: 'votar.php', data: { post_dislike:"dislike" },..

Também supondo que você tenha mais de um id, seria ideal você passar o id da linha que recebe a alteração no bd.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: votar like ou unlike

02-08-2016 17:42

o tutorial mostra a mesma function nos dois lados (botoes)...
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: votar like ou unlike

02-08-2016 17:44

Falha. Troca o nome da segunda função e puxa ela que funciona.
Do modo que está a segunda função com o mesmo nome acaba sendo ativada.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: votar like ou unlike

02-08-2016 17:50

ok....fiz o que você mandou....ele adiciona sempre um like na segunda funcao á qual renomeai para unlike...mas no primeiro botão com a funcao like() , nao adiciona nenhum like!
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: votar like ou unlike

02-08-2016 18:01

Eu fiz aqui assim:

<script src="jquery.js"></script> <script type="text/javascript"> function insert_like() { $.ajax({ type: 'post', url: 'votar.php', data: { post_like:"like" }, success: function (response) { $('#total_like').html(response); } }); } function insert_dislike() { $.ajax({ type: 'post', url: 'votar.php', data: { post_dislike:"dislike" }, success: function (response) { $('#total_like').html(response); } }); } </script> <body onload="insert_like();" /> <div id="total_like"></div>

votar.php

<?php if(isset($_POST['post_like'])) { echo "like"; } if(isset($_POST['post_dislike'])) { echo "dislike"; } ?>

Testei ambas funções e está retornando correto aqui. Verifica ai se o seu modelo está igual a esse acima.
0
A melhor hospedagem para o seu site HostGator!
 
Mais de 100 postagens
Mais de 100 postagens
Tópico Autor
Mensagens: 271
Sexo: Masculino

Re: votar like ou unlike

02-08-2016 18:20

funciona bem com o dislike...mas o like nao adiciona nada.... :(
0
 
Avatar do usuário
ADMIN
ADMIN
Mensagens: 17735
Nome: Kleber
Descrição do site: Onde você encontra scripts grátis para o seu site
Sexo: Masculino
Localização: RJ / RJ / Brasil
Contato:

Re: votar like ou unlike

02-08-2016 20:43

No exemplo que testei está funcionando correto.

<script src="jquery.js"></script> <script type="text/javascript"> function insert_like() { $.ajax({ type: 'post', url: 'votar.php', data: { post_like:"like", post_id:"1" }, success: function (response) { $('#total_like').html(response); } }); } function insert_dislike() { $.ajax({ type: 'post', url: 'votar.php', data: { post_dislike:"dislike", post_id:"1" }, success: function (response) { $('#total_like').html(response); } }); } </script> <input type="button" value="like" onclick="insert_like()" /> <input type="button" value="dislike" onclick="insert_dislike()" /> <div id="total_like"></div>

votar.php

<?php if(isset($_POST['post_like'])) { echo "like".$_POST["post_id"]; } if(isset($_POST['post_dislike'])) { echo "dislike".$_POST["post_id"]; } ?>

Quanto ao seu INSERT você precisa definir qual id recebe o update

UPDATE comentarios SET like=like+1 WHERE id='..'
0
A melhor hospedagem para o seu site HostGator!

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado