Seletor $(this) do jQuery não funciona!
Bom galera é o seguinte, estou aprendendo Ajax(ainda to bem noob) e pra isso estou realizando alguns exercícios simples, hoje fui tentar criar um sistema de curtidas, no ajax no parametro success eu declaro a function, coloco o paramentro com o nome de res e faço o seguinte dentro da funcao: $(this).after(" "+res), só que ele não acrescenta o resultado do código php ( página que estou chamando com ajax ) na minha index e quando faço $(".botao_curtir").after(" "+res) ele exibe o resultado, só que em todos os botões logico, o que não quero! Sabem o porque?
Bom as páginas são essas:
Index.php
<?php
require_once("conecta.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Sistema e curtidas</title>
<!-- IMPORTAÇÕES DE ARQUIVOS CSS -->
<link rel="stylesheet" type="text/css" media="all" href="css/estilo.css" />
<!-- IMPORTAÇÕES DE ARQUIVOS JAVASCRIPT -->
<script type="text/javascript" src="js/jquery-1.11.0.min.js"></script>
<script type="text/javascript" src="js/funcao.js"></script>
</head>
<body>
<div id="geral">
<?php
$sql_postagens = mysql_query("SELECT * FROM postagens");
while($linha = mysql_fetch_array($sql_postagens)){
$id = $linha['id'];
$titulo = $linha['titulo'];
$conteudo = $linha['conteudo'];
?>
<div class="postagem">
<h2><?php echo $titulo ?></h2>
<p><?php echo $conteudo ?></p>
<input type="hidden" value="<?php echo $id ?>" />
<span class="botao_curtir">Curtir</span>
</div>
<?php
}
?>
</div>
</body>
</html>
Conecta.php
<?php
$db = @mysql_connect("localhost","root","") or die("Ocorreu o seguinte erro na conecta: ".mysql_error());
mysql_select_db("curtidas",$db) or die("Ocorreu o seguinte erro na selecao: ".mysql_error());
mysql_set_charset("utf8",$db);
?>
reg_curtida.php ( registra as curtidas no banco de dados )
<?php
require_once("conecta.php");
$id = $_GET['id'];
$consulta = mysql_query("SELECT quant FROM curtidas WHERE id_post='$id'");
$cont = mysql_num_rows($consulta);
if($cont == 0){
$curtida = 1;
$reg = mysql_query("INSERT INTO curtidas(id_post,quant) value('$id','$curtida')");
}else{
while($linha = mysql_fetch_array($consulta)){
$quant = $linha['quant'];
$curtida = $quant + 1;
};
$reg = mysql_query("UPDATE curtidas SET quant='$curtida' WHERE id_post='$id'");
}
$consulta = mysql_query("SELECT * FROM curtidas WHERE id_post='$id'");
while($linha = mysql_fetch_array($consulta)){
$quant = $linha['quant'];
};
echo "<span class='curtida'>".$quant."</span>";
mysql_close($db);
?>
e funcao.js
$(function(){
$(".botao_curtir").click(function(){
var id = $(this).siblings("input:hidden").val();
$.ajax({
type: "POST",
url: "reg_curtida.php?id="+id,
dataType:"text",
success: function(res){
$(this).siblings(".curtida").remove();
$(this).after(" "+res);
}
});
});
});
Se alguém puder me ajudar ficaria muito agradecido!
Discussão (1)
Carregando comentários...