Gente tenho um laço de repetição onde exibi uma lista , nele contem um botão para atualizar o nível desses itens, porem queria que a pagina não desse refresh e ao mesmo tempo enviasse uma msg para o "TD" daquele item atualizado, e utilizei o Ajax que envia no metodo post o id, porem ele está enviando só o ultimo id da lista alguem poderia me ajudar. Abaixo explicarei melhor
while($row = $select->fetch(PDO::FETCH_ASSOC)):
?>
<tbody>
<tr>
<td><?php echo $row['nome'];?></td>
<td><?php echo $row['data'];?></td>
<td class="contador<?php echo $row['id']; ?>">
<ul class="actions">
<li><a href="" id="<?php echo $row['id'];?>" class="ative btnUpdate"><i class="fas fa-check"></i> Atualizar</a></li>
</ul>
</td>
</tr>
</tbody>
<form class="ajax_form">
<input type="hidden" class="id" name="id" value="<?=$row['id']?>" />
</form>
<?php endwhile; ?>
Nesse laço de repetição eu adicionei um td com uma class ID, para que a msg enviada fosse só para aquele td, até ai esta funcionando normal
e o link que contem o ID = id, e um formulario dentro do while, e o valor do input é o valor do id
<script>
$(document).ready(function(){
$("body").delegate('.btnUpdate', 'click', function(e){
e.preventDefault() //Para anular o comportamento padrão do link
var dados = $(".ajax_form").serializeArray();
var id = $(this).attr("id");
var contador = id;
$.ajax({
url: "action/test.php",
type: "POST",
data: dados,
success: function (resultado) {
console.log(resultado);
$('.contador'+contador+'').html(resultado);
},
error: function (jqXHR, textStatus, errorThrown) {
alert(jqXHR)
console.log(jqXHR);
}
});
})
});
</script>
e no script do Ajax ele recupera os dados, e enviar uma msg de sucesso para a class .contador+id(nessa parte está funcionando perfeitamente), porem como mencionado o id que está sendo enviado para o arquivo test.php é sempre o ultimo id do meu while alguem poderia me ajudar. se houver outro método estou aceitando também