Passe a resposta do AJAX apenas para a div atual entre uma matriz
Consegui criar um sistema de votação simples com uma pontuação atual única. Está tudo bem, mas o problema é que quando clico em um botão para votarpara este particular conteúdo - todas as pontuações em outras divs também mudam !! Eu preciso que o AJAX produza a resposta com sucesso apenas na div atual (votação em vídeo) nem todas na minha página! Eu acho que é por isso:
success: function(html) {
$('.this').html(html);
}
Isso porque eu tenho uma matriz de blocos na minha página:
<div id="main">
<div class="box1">
<a href="" class="vote" id="<?php echo $mes_id; ?>" name="up">
<img class='image'src="img/thumbsup.png">
</a>
<span class='this'><?php echo $total_score; ?></span>
<a href="" class="vote" id="<?php echo $mes_id; ?>" name="down">
<img class='image' src="img/icon-down.png">
</a>
</div>
<div class='box2' ><?php echo $msg; ?></div>
</div>
E estenda-se à classe 'this', quando, com sucesso, o AJAX adiciona resposta a todas elas, mas preciso identificá-las e adicionar apenas a atual (abrange a classe 'this', que são basicamente as pontuações da votação atual), para que quando o usuário vote - apenas a pontuação atual seja alterada. nem todos eles! (se todos eles tiverem extensão da classe 'this' para a qual passo a resposta do AJAX. Criar uma classe específica para cada bloco (div) não faz sentido, porque faço uma página que exibe vídeos do banco de dados - qualquer número! aqui está o ajax e jquery:
<script type="text/javascript">
$(function() {
$(".vote").click(function()
{
var id = $(this).attr("id");
var name = $(this).attr("name");
var dataString = 'id='+ id ;
var acdc = $('#ab').attr('class');
var potato = 'potato';
var parent = $(this);
if(name=='up')
{
$.ajax({
type: "POST",
url: "up_vote.php",
data: dataString,
cache: false,
success: function(html){
$('.this').html(html);
}});
}
else
{
$(this).fadeIn(200).html('<img src="img/icon-down.png" align="absmiddle" style="height: 10px;width:10px;">');
$.ajax({
type: "POST",
url: "down_vote.php",
data: dataString,
cache: false,
success: function(html){
$('.this').html(html);
}});
}
return false;
});
});
</script>
Então, como posso fazer isso? (Alterar apenas a pontuação atual) Muito obrigado! Antecipadamente.