Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Não entendi como funciona a função do jquery

<script>
  function pagaAgora(id) {
      $.post("pagaConta", {'id' : id}, function() {
          $("#conta_"+id).html("Paga");
        });
  }
</script>

Bom dia Pessoal,

Gostaria de saber como funciona a função acima. Por exemplo, o que faz a linha abaixo?

$("#conta_"+id).html("Paga");

Da onde saiu esse #conta_ que está na jsp:

 <td id="conta_${conta.id}">
                <c:if test="${conta.paga eq false}">
                    Não paga
                </c:if>
                <c:if test="${conta.paga eq true }">
                    Paga!
                </c:if>
            </td>

Eu na verdade gostaria de fazer alguns links sumirem ou aparecerem de acordo com a opção 'paga/não paga' usando o ajax. Consegui fazer a data aparecer e sumir dependendo da opção 'paga' estar marcada ou não, e o link tbm. O problema que eles só mudam quando eu dou o refresh na página. A única coisa que muda instantâneo é a opção da coluna "Paga?". Os links da última coluna não alteram instantaneamente, só depois do refresh. Daí surgiu essa dúvida da função ajax. Poderiam me ajudar?

obg!

2 respostas
solução!

Fala aí Francisco, blz?

Vamos por parte, primeiro vamos resolver isso:

"Da onde saiu esse #conta__ que está na jsp:"

Bom isso aqui "#conta_" está sendo usado para criar um id para poder recuperar via javascript. Isso está sendo "concatenado" com o id da sua conta #conta _${conta.id}.

Vamos supor que você tenha 2 contas para essa tabela (com id's 1,2 respectivamente), vai ser gerado #conta_1 e #conta_2.

Você pode observar isso, vendo o código fonte da página renderizada no seu navegador.

A segunda parte é referente a esse código :

function pagaAgora(id) {
$.post("pagaConta", {'id' : id}, function() {
          $("#conta_"+id).html("Paga");
        });
}

Vai ser efetuado uma requisição assíncrona com o verbo POST para a uri "/pagaConta" e está sendo passado o id da conta.

Essa function:

function() {
          $("#conta_"+id).html("Paga");
        }

É executada quando a resposta do POST for bem sucedida.

Vamos supor que você tenha feito esse POST e o id que foi informado seja 1.

A linha $("#conta_"+id).html("Paga");, procura por algum elemento que tenha o id: #conta_1.

E vai alterar o HTML a partir desse elemento para o texto "Paga".

Espero ter ajudado e bons estudos.

Obrigado pela resposta Fernando, ajudou bastante.

Vou tentar resolver o segundo problema.

Obg vlw