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!

Garanta sua matrícula hoje e ganhe + 2 meses grátis

Continue sua jornada tech com ainda mais tempo para aprender e evoluir

Quero aproveitar agora
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